:root{color-scheme:light;--bg: #f7f7f8;--surface: #ffffff;--surface-2: #f2f3f5;--surface-3: #eceef1;--text: #17181a;--muted: #74777d;--border: #e7e8eb;--primary: #1769e0;--primary-soft: #edf4ff;--danger: #d92d20;--danger-soft: #fff1f0;--warning: #b45309;--warning-soft: #fdf3e3;--success: #1a7f37;--shadow: 0 8px 32px rgba(0, 0, 0, .06);--radius: 14px;--radius-sm: 10px;--font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #111214;--surface: #191a1d;--surface-2: #222327;--surface-3: #2a2c31;--text: #f2f3f5;--muted: #96999f;--border: #2b2d31;--primary: #69a7ff;--primary-soft: #17263d;--danger: #ff746c;--danger-soft: #3b1c1c;--warning: #f5b765;--warning-soft: #3a2c12;--success: #4cc38a;--shadow: none}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}h1,h2,h3,.detail-title,.notice-title,.empty-title,.panel-head h2{text-wrap:balance}body,.app,.notice-card,.detail,.panel,.sticky-head,.search,.select,.icon-btn,.btn,.filter,.empty-state,.menu,.dialog,.overlay{transition:background-color .28s ease,border-color .28s ease,color .28s ease}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.app{width:min(860px,calc(100% - 32px));margin:0 auto;padding:32px 0 72px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:26px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-logo{width:44px;height:44px;border-radius:10px;flex:0 0 auto;background:#fff;box-shadow:0 1px 4px #00000014}.brand h1{margin:0;font-size:26px;line-height:1.2;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand p{margin:4px 0 0;color:var(--muted);font-size:13px}.icon-btn,.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);padding:0 14px;transition:background .15s ease,border-color .15s ease}.icon-btn{min-width:42px;padding:0 10px}.icon-btn:hover,.btn:hover{background:var(--surface-2)}.btn.primary{border-color:var(--primary);background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary);filter:brightness(1.06)}.btn.danger{color:var(--danger)}.btn:disabled,.small-btn:disabled,.icon-btn:disabled{opacity:.55;cursor:not-allowed}.small-btn{display:inline-flex;align-items:center;gap:5px;min-height:34px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);padding:0 10px;font-size:13px;transition:background .15s ease}.small-btn:hover{background:var(--surface-2)}.small-btn.danger{color:var(--danger)}.back-link{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:14px;min-height:40px}.back-link:hover{color:var(--text)}.menu-wrap{position:relative}.menu{position:absolute;z-index:40;right:0;top:50px;width:230px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);padding:7px;transform-origin:top right;animation:menu-in .15s cubic-bezier(.22,.8,.32,1) both}@keyframes menu-in{0%{opacity:0;transform:translateY(-5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.menu button{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;padding:0 10px;font-size:14px}.menu button:hover{background:var(--surface-2)}.menu button.active{color:var(--primary)}.menu-chevron{margin-left:auto;opacity:.6}.menu-sub{position:relative}.menu-sub-list{margin:2px 0 2px 8px;border-left:2px solid var(--border);padding-left:4px}.toolbar{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}.search-wrap{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:14px;color:var(--muted);pointer-events:none}.search{width:100%;min-height:48px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:14px;padding:0 42px;outline:none;font-size:15px}.search:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.search-clear{position:absolute;right:10px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--muted);transition:background .15s ease,color .15s ease,transform .1s ease}.search-clear:active{transform:scale(.88)}.search-clear:hover{background:var(--surface-2);color:var(--text)}.select{border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);padding:0 12px;min-height:42px;outline:none}.select:focus{border-color:var(--primary)}.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:26px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:38px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);padding:0 16px;font-size:14px}.filter.active{background:var(--surface);color:var(--text);border-color:var(--border);font-weight:600}.unread-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:999px;background:var(--primary);color:#fff;font-size:11px;font-weight:700;padding:0 5px}.filter-sep{flex:0 0 auto;align-self:center;width:1px;height:18px;margin:0 4px;background:var(--border)}.cat-chip{display:inline-flex;align-items:center;flex:0 0 auto;min-height:34px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);padding:0 13px;font-size:13.5px;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}.cat-chip.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.cat-chip:active{transform:scale(.97)}.section{margin-bottom:30px}.section-title{margin:0 0 10px;color:var(--muted);font-size:13px;font-weight:650;letter-spacing:.04em}.notice-list{display:grid;gap:10px}.notice-card{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:18px;cursor:pointer;transition:transform .2s cubic-bezier(.22,.8,.32,1),border-color .15s ease,background .15s ease}@media (hover: hover){.notice-card:hover{transform:translateY(-2px);border-color:#cfd2d7;box-shadow:0 6px 20px #0000000d}:root[data-theme=dark] .notice-card:hover{border-color:#3a3d42;box-shadow:0 6px 20px #0000004d}}.notice-card:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.notice-save{position:absolute;top:12px;right:12px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);transition:background .15s ease,color .15s ease}.notice-save:hover{background:var(--surface-2);color:var(--text)}.notice-save:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.notice-save.active{background:var(--primary-soft);color:var(--primary)}.notice-save.active svg{fill:var(--primary)}.filter .saved-count{background:var(--surface-2);color:var(--muted)}.btn.saved-on{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.notice-top{display:flex;align-items:center;gap:8px;min-height:20px;margin-bottom:6px}.dot{width:7px;height:7px;border-radius:999px;background:var(--primary);flex:0 0 auto}.notice-title{margin:0;padding-right:40px;font-size:17px;line-height:1.5;letter-spacing:-.01em;word-break:break-word}.notice-card.unread .notice-title{font-weight:650}.notice-excerpt{margin:2px 0 0;padding-right:40px;color:var(--muted);font-size:13.5px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.notice-card.unread .notice-excerpt{color:var(--text);opacity:.72}.notice-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px;margin-top:9px;color:var(--muted);font-size:13px}.notice-meta-left{display:inline-flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:0}.notice-attach{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;color:var(--muted);font-size:12.5px}.badge{display:inline-flex;align-items:center;gap:4px;min-height:22px;border-radius:999px;padding:0 9px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.badge.important{background:var(--danger-soft);color:var(--danger)}.badge.pin{background:var(--primary-soft);color:var(--primary)}.badge.updated{background:var(--surface-2);color:var(--muted)}.badge.deadline-warn{background:var(--warning-soft);color:var(--warning)}.badge.deadline-warn svg{flex:0 0 auto}.badge.deadline-closed{background:var(--surface-2);color:var(--muted)}.admin-row-meta .admin-deadline{display:inline-flex;align-items:center;gap:3px;font-weight:600}.admin-row-meta .admin-deadline.warn{color:var(--warning)}.admin-row-meta .admin-deadline.closed{color:var(--muted);font-weight:500}.badge.draft{background:var(--surface-2);color:var(--muted)}.badge.scheduled{background:var(--warning-soft);color:var(--warning)}:root[data-theme=dark] .badge.scheduled{background:var(--warning-soft);color:var(--warning)}.badge.published{background:#e9f7ee;color:var(--success)}:root[data-theme=dark] .badge.published{background:#0f2b1b;color:#4cc38a}.badge.withdrawn{background:var(--surface-2);color:var(--muted);text-decoration:line-through}.empty-state{display:grid;place-items:center;gap:10px;padding:48px 20px;text-align:center;color:var(--muted);background:var(--surface-2);border-radius:var(--radius)}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--surface);color:var(--muted);margin-bottom:2px}.empty-title{font-size:15px;font-weight:600;color:var(--text)}.empty-desc{font-size:13px;color:var(--muted);max-width:340px}.soft-note{margin:2px 0 0;padding:20px 16px;text-align:center;color:var(--muted);font-size:13.5px}.center-action{display:flex;justify-content:center;margin-top:20px}.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:46px 16px;color:var(--muted);font-size:14px}.loading.inline{padding:8px 0;justify-content:flex-start}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.detail-topbar{margin-bottom:14px}.detail{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:30px 32px}.withdrawn-banner{display:flex;align-items:center;gap:8px;margin-bottom:18px;padding:11px 14px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:14px}.detail-title{margin:0 0 14px;font-size:clamp(22px,4vw,28px);line-height:1.4;letter-spacing:-.02em;word-break:break-word}.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px}.detail-meta-text{color:var(--muted);font-size:13px}.detail-body{margin-bottom:28px}.rich-body{font-size:15.5px;line-height:1.85;word-break:break-word}.rich-body h2,.rich-body h3,.rich-body h4{margin:1.4em 0 .6em;line-height:1.4;letter-spacing:-.01em}.rich-body h2{font-size:21px}.rich-body h3{font-size:18px}.rich-body p{margin:0 0 1em}.rich-body ul,.rich-body ol{margin:0 0 1em;padding-left:1.6em}.rich-body li{margin:.25em 0}.rich-body a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.rich-body blockquote{margin:1em 0;padding:2px 16px;border-left:3px solid var(--primary);color:var(--muted)}.rich-body code{background:var(--surface-2);border-radius:6px;padding:2px 6px;font-size:.9em}.rich-body pre{background:var(--surface-2);border-radius:10px;padding:14px;overflow-x:auto}.rich-body pre code{background:transparent;padding:0}.rich-body img{display:block;max-width:100%;max-height:70vh;margin:1em auto;border-radius:10px;cursor:zoom-in}.rich-body table{width:100%;border-collapse:collapse;margin:1em 0;font-size:14px}.rich-body th,.rich-body td{border:1px solid var(--border);padding:8px 12px;text-align:left}.rich-body th{background:var(--surface-2);font-weight:650}.rich-body hr{border:0;border-top:1px solid var(--border);margin:1.6em 0}.attachment-area{margin-top:8px;padding-top:20px;border-top:1px solid var(--border)}.attachment-list{display:grid;gap:0}.attachment{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.attachment:last-child{border-bottom:0}.file-chip{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:30px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.02em;flex:0 0 auto}.file-chip.pdf{background:var(--danger-soft);color:var(--danger)}.file-chip.doc{background:var(--primary-soft);color:var(--primary)}.file-chip.image,.file-chip.png,.file-chip.jpg,.file-chip.jpeg{background:#e9f7ee;color:var(--success)}.file-chip.zip,.file-chip.rar{background:#fff7e6;color:#b45309}.attachment-name{display:flex;flex-direction:column;min-width:0;flex:1}.attachment-filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:550}.attachment-size{color:var(--muted);font-size:12px;margin-top:2px}.attachment-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.detail-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}.history-area{margin-top:30px;padding-top:20px;border-top:1px solid var(--border)}.history-area h3{margin:0 0 10px;font-size:15px}.history-row{color:var(--muted);font-size:13px;padding:6px 0;line-height:1.6}.history-time{margin-right:10px;color:var(--muted);white-space:nowrap}.history-text{color:var(--text)}.history-detail{margin:4px 0 0 70px;padding:0;list-style:none;font-size:12.5px}.history-detail .old{color:var(--danger);text-decoration:line-through}.history-detail .new{color:var(--success)}.detail-updated{margin:22px 0 0;color:var(--muted);font-size:12px}.overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#0000006b;backdrop-filter:blur(3px);padding:16px;animation:overlay-in .18s ease both}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.dialog{width:100%;max-height:calc(100dvh - 32px);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);animation:dialog-in .24s cubic-bezier(.22,.8,.32,1) both}@keyframes dialog-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 0}.dialog-head h2{margin:0;font-size:21px;line-height:1.4;letter-spacing:-.01em;word-break:break-word}.dialog-body{padding:18px 24px 24px;overflow-y:auto;overscroll-behavior:contain}.pdf-frame{display:block;width:100%;height:75vh;min-height:420px;border:0;border-radius:10px;background:#fff}.dialog:has(.pdf-frame){max-height:calc(100dvh - 24px)}.dialog:has(.pdf-frame) .dialog-body{padding:14px}.pdf-fallback{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:var(--muted);font-size:13px}.pdf-fallback a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.lightbox{position:fixed;inset:0;z-index:90;background:#000000eb;display:flex;align-items:center;justify-content:center}.lightbox-toolbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;color:#fff}.lightbox-count{font-size:14px;opacity:.85}.lightbox-actions{display:flex;gap:8px}.icon-btn.light{background:#ffffff1f;border-color:transparent;color:#fff}.icon-btn.light:hover{background:#ffffff38}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:0;background:#ffffff1f;color:#fff}.lightbox-nav:hover{background:#ffffff3d}.lightbox-nav.left{left:16px}.lightbox-nav.right{right:16px}.lightbox-nav.right svg{transform:rotate(180deg)}.lightbox-stage{display:grid;place-items:center;width:100%;height:100%;padding:60px 24px;overflow:hidden;touch-action:none}.lightbox-stage img{max-width:92vw;max-height:82vh;object-fit:contain;border-radius:6px;user-select:none;-webkit-user-drag:none}.lightbox-scale{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#fff;font-size:13px;background:#ffffff24;border-radius:999px;padding:5px 12px}.qr-box{display:grid;place-items:center;min-height:280px;background:#fff;border-radius:14px;padding:18px}.qr-box canvas{width:240px;height:240px}.qr-hint{margin:14px 0 0;color:var(--muted);font-size:13px;text-align:center}.push-intro{margin:0 0 16px;color:var(--muted);font-size:14px}.push-meta{color:var(--muted);font-size:12px;align-self:center;word-break:break-all}.notice-tip{padding:11px 14px;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:13.5px}.notice-tip.danger{background:var(--danger-soft);color:var(--danger)}.toast-container{position:fixed;left:50%;bottom:30px;transform:translate(-50%);z-index:100;display:grid;gap:8px;pointer-events:none}.toast{display:inline-flex;align-items:center;gap:8px;background:#17181a;color:#fff;border-radius:999px;padding:10px 18px;font-size:13.5px;box-shadow:0 6px 24px #0000002e;animation:toast-in .2s ease}:root[data-theme=dark] .toast{background:#f2f3f5;color:#17181a}.toast-ico{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;flex:0 0 auto;color:#fff}.toast-ico-ok{background:var(--success)}.toast-ico-bad{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.form-grid{display:grid;gap:18px}.field{display:grid;gap:7px}.field label{font-size:13.5px;font-weight:650}.required{color:var(--danger)}.input,.textarea{width:100%;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);outline:none;padding:11px 13px;min-height:44px}.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.file-input{padding:9px}.checks{display:flex;flex-wrap:wrap;gap:18px}.check{display:inline-flex;align-items:center;gap:8px;font-size:14px;min-height:36px;cursor:pointer}.check input{width:17px;height:17px;accent-color:var(--primary)}.radio-group{display:flex;flex-wrap:wrap;gap:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.schedule-field{margin-top:10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.field-hint{margin:2px 0 0;color:var(--muted);font-size:12.5px}.form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.inline-form{display:flex;gap:9px;margin-bottom:16px}.inline-form .input{flex:1}.editor{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface)}.editor-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap}.editor-tool{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--text)}.editor-tool:hover{background:var(--surface-3)}.editor-tool:disabled{opacity:.5}.editor-uploading{margin-left:8px;color:var(--muted);font-size:12.5px}.editor-area{min-height:220px;max-height:520px;overflow-y:auto;padding:14px 16px;outline:none}.editor-area:empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.editor-area.rich-body table.rich-table th{background:var(--surface-2)}.admin-page{min-height:100dvh}.admin-header{display:flex;align-items:center;gap:28px;padding:18px max(20px,calc((100% - 1080px)/2));border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:30}.admin-brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}.admin-brand .brand-logo{width:38px;height:38px}.admin-brand h1{margin:0;font-size:19px;line-height:1.25}.admin-brand p{margin:2px 0 0;color:var(--muted);font-size:12px}.admin-nav{display:flex;gap:4px;flex:1;overflow-x:auto}.admin-nav a{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:10px;color:var(--muted);font-size:14px;white-space:nowrap}.admin-nav a:hover{background:var(--surface-2);color:var(--text)}.admin-nav a.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.admin-actions{display:flex;gap:8px;flex:0 0 auto}.admin-actions .btn{min-height:38px;font-size:13.5px}.admin-main{width:min(1080px,calc(100% - 32px));margin:0 auto;padding:26px 0 60px}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.panel-head h2{margin:0;font-size:19px}.panel h2{margin:0 0 14px;font-size:18px}.panel-toolbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.panel-toolbar .search-wrap{flex:1;min-width:240px}.admin-rows{display:grid;gap:0}.admin-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.admin-row:last-child{border-bottom:0}.admin-row-main{min-width:0}.admin-row-title{font-weight:650;line-height:1.4;word-break:break-word;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.admin-row-meta{display:flex;align-items:center;gap:7px;margin-top:6px;color:var(--muted);font-size:12.5px;flex-wrap:wrap}.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.muted-label{color:var(--muted);font-size:12px;font-weight:400}.editor-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px;flex-wrap:wrap}.editor-panel .form-grid{max-width:760px}.settings-grid{display:grid;gap:16px;max-width:760px}.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(400px,100%);border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);padding:32px;display:grid;gap:16px;text-align:center}.login-logo{width:72px;height:72px;margin:0 auto;border-radius:14px}.login-card h1{margin:0;font-size:22px}.login-hint{margin:0;color:var(--muted);font-size:14px}.login-card .field,.login-card .form-grid{text-align:left}.login-card .back-link{justify-content:center}.footer{margin-top:60px;color:var(--muted);text-align:center;font-size:12px}.topbar-actions{display:flex;align-items:center;gap:8px}button.back-link{border:0;background:transparent;padding:0 4px;cursor:pointer;font:inherit;border-radius:8px}.sticky-head{position:sticky;top:0;z-index:10;padding:8px 0 10px;margin-bottom:18px;background:var(--bg)}.sticky-head .filters{margin-bottom:0}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.sticky-head{background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.icon-btn .spin,.btn .spin{animation:spin .8s linear infinite}mark.hl{background:var(--primary-soft);color:inherit;border-radius:4px;padding:0 2px}:root[data-theme=dark] mark.hl{background:#69a7ff38}.notice-card:active{transform:scale(.99);transition-duration:.06s}.center-action{gap:10px;flex-wrap:wrap}.skeleton-card{cursor:default;pointer-events:none}.skeleton-card:hover{transform:none;border-color:var(--border)}.sk-row{display:flex;gap:8px;margin-bottom:12px}.sk-badge{width:52px;height:22px;border-radius:999px}.sk-line{height:14px;border-radius:6px}.sk-line-title{width:82%;height:17px;margin-bottom:12px}.sk-line-meta{width:42%}.sk-badge,.sk-line{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion: reduce){.sk-badge,.sk-line{animation:none}}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.notice-list .notice-card{animation:card-in .34s cubic-bezier(.22,.8,.32,1) backwards}.notice-list .notice-card:nth-of-type(2){animation-delay:.03s}.notice-list .notice-card:nth-of-type(3){animation-delay:.06s}.notice-list .notice-card:nth-of-type(4){animation-delay:.09s}.notice-list .notice-card:nth-of-type(5){animation-delay:.12s}.notice-list .notice-card:nth-of-type(n+6){animation-delay:.14s}.day-divider{margin:14px 2px 2px;color:var(--muted);font-size:12px;font-weight:650;letter-spacing:.06em}.day-divider:first-child{margin-top:2px}.btn:active,.small-btn:active,.filter:active,.icon-btn:active{transform:scale(.97)}.filter{transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}@keyframes bookmark-pop{0%{transform:scale(.7)}55%{transform:scale(1.25)}to{transform:scale(1)}}.notice-save.active svg{animation:bookmark-pop .28s cubic-bezier(.34,1.56,.64,1)}@keyframes detail-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.detail{animation:detail-in .36s cubic-bezier(.22,.8,.32,1) backwards}.read-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;pointer-events:none;opacity:0;transition:opacity .25s ease}.read-progress.on{opacity:1}.read-progress-bar{height:100%;background:var(--primary);transform-origin:0 50%;transform:scaleX(0);border-radius:0 2px 2px 0}.read-time{display:inline-flex;align-items:center;gap:4px;margin-left:10px}.scroll-top{position:fixed;right:22px;bottom:26px;z-index:60;width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);box-shadow:0 6px 20px #0000001f;opacity:0;transform:translateY(12px) scale(.92);pointer-events:none;transition:opacity .22s ease,transform .22s ease,background .2s ease}.scroll-top.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}@media (hover: hover){.scroll-top:hover{background:var(--surface-2);transform:translateY(-2px) scale(1)}}.scroll-top:active{transform:scale(.94)}@media (max-width: 640px){.scroll-top{right:16px;bottom:18px;width:44px;height:44px}}::selection{background:var(--primary-soft)}.btn,.small-btn,.icon-btn{transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease,filter .15s ease}@media (max-width: 640px){.app{width:min(100% - 24px,860px);padding-top:20px}.toolbar{grid-template-columns:1fr}.detail{padding:20px 18px}.history-detail{margin-left:0}.admin-header{flex-wrap:wrap;gap:12px;padding:14px 16px}.admin-nav{order:3;width:100%;flex-basis:100%}.admin-actions .btn{padding:0 10px;font-size:13px}.admin-main{width:min(100% - 24px,1080px);padding-top:18px}.admin-row{grid-template-columns:1fr;gap:10px}.row-actions{justify-content:flex-start}.split{grid-template-columns:1fr}.attachment{flex-wrap:wrap}.attachment-actions{justify-content:flex-start;width:100%}.pdf-frame{height:78dvh;min-height:340px;border-radius:8px}.lightbox-nav{width:38px;height:38px}.lightbox-nav.left{left:8px}.lightbox-nav.right{right:8px}}.detail-body .rich-body{max-width:46em}.detail-body .rich-body table{display:block;max-width:100%;overflow-x:auto}@keyframes badge-pop{0%{transform:scale(.6)}55%{transform:scale(1.28)}to{transform:scale(1)}}.unread-count{transform-origin:center;animation:badge-pop .3s cubic-bezier(.34,1.56,.64,1)}@media (max-width: 640px){.sticky-head{transition:transform .26s cubic-bezier(.22,.8,.32,1),opacity .2s ease,background-color .28s ease;will-change:transform}.sticky-head.head-hidden{transform:translateY(-100%);opacity:0;pointer-events:none}}.toast-container{bottom:calc(30px + env(safe-area-inset-bottom,0px))}.scroll-top{bottom:calc(26px + env(safe-area-inset-bottom,0px))}.sticky-head{top:env(safe-area-inset-top,0px)}.search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}@media (max-width: 640px){.toast-container{bottom:calc(12px + env(safe-area-inset-bottom,0px))}.scroll-top{bottom:calc(16px + env(safe-area-inset-bottom,0px))}}.editor-guide{margin:0 0 18px;line-height:1.7}.editor-guide strong{color:var(--text);font-weight:650}@media (max-width: 640px){.editor-panel .form-actions{gap:10px}.editor-panel .form-actions .btn{flex:1 1 0;min-height:46px}}.mark-all-row{display:flex;align-items:center;justify-content:space-between;margin:0 2px 12px}.mark-all-count{color:var(--muted);font-size:13px}.mark-all-count strong{color:var(--text);font-weight:650}.text-btn{border:0;background:transparent;color:var(--primary);font-size:13px;min-height:36px;padding:0 8px;border-radius:9px;transition:background .15s ease,transform .1s ease}@media (hover: hover){.text-btn:hover{background:var(--primary-soft)}}.text-btn:active{transform:scale(.97)}.new-since-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 12px;padding:9px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.new-since-main{display:inline-flex;align-items:center;gap:8px;min-height:32px;border:0;background:transparent;color:var(--text);font-size:13.5px;padding:0;text-align:left}.new-since-main strong{color:var(--primary);font-weight:700}.new-since-dot{width:7px;height:7px;border-radius:999px;background:var(--primary);flex:0 0 auto}.new-since-hint{color:var(--muted);font-size:12.5px;margin-left:2px}@media (hover: hover){.new-since-main:hover .new-since-hint{color:var(--primary)}}.seen-divider{display:flex;align-items:center;gap:12px;margin:16px 2px;color:var(--muted);font-size:12px;letter-spacing:.04em;white-space:nowrap}.seen-divider span{flex:1 1 0;height:1px;background:var(--border)}.meta-updated{color:var(--text);opacity:.72}.source-link-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:22px 0 0;padding-top:18px;border-top:1px solid var(--border);color:var(--muted);font-size:13.5px}.source-link-row a{display:inline-flex;align-items:center;gap:5px;color:var(--primary)}.share-list{display:grid;gap:4px}.share-item{display:flex;align-items:center;gap:13px;width:100%;min-height:58px;border:0;border-radius:12px;background:transparent;color:var(--text);text-align:left;padding:8px 10px;transition:background .15s ease,transform .1s ease}.share-item:active{transform:scale(.99)}@media (hover: hover){.share-item:hover{background:var(--surface-2)}}.share-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--primary-soft);color:var(--primary);flex:0 0 auto}.share-text{display:grid;gap:2px;min-width:0}.share-title{font-size:15px;font-weight:600}.share-desc{color:var(--muted);font-size:12.5px}.share-url{margin:12px 0 0;padding:9px 12px;border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:12px;word-break:break-all}@keyframes list-swap{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.list-swap{animation:list-swap .2s cubic-bezier(.22,.8,.32,1) both}.list-swap .notice-card{animation:none}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-in{animation:page-in .22s cubic-bezier(.22,.8,.32,1) both}.page-in.entrance-done,.detail.entrance-done{opacity:1!important;animation:none!important}@keyframes empty-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.empty-state{animation:empty-in .22s cubic-bezier(.22,.8,.32,1) both}.detail-deadline{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:12px 0 0;font-size:13.5px;line-height:1.5}.detail-deadline.warn{color:var(--warning);font-weight:650}.detail-deadline.closed{color:var(--muted);font-weight:600}.detail-deadline-state{font-weight:400;color:var(--muted)}.detail-deadline svg{flex:0 0 auto}.deadline-field{display:flex;gap:8px;align-items:center}.deadline-field .input{flex:1;min-width:0}.detail-action{margin-top:24px}.action-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;border-radius:13px;background:var(--primary);color:#fff;font-size:16px;font-weight:650;letter-spacing:.01em;text-decoration:none;transition:transform .12s ease,opacity .12s ease}.action-cta:hover{opacity:.94}.action-cta:active{transform:scale(.99)}.action-cta svg{flex:0 0 auto}.action-field{display:grid;grid-template-columns:168px 1fr;gap:8px}@media (max-width: 560px){.action-field{grid-template-columns:1fr}}.detail-deadline.open{color:var(--primary)}.detail-deadline.open .detail-deadline-state{color:var(--muted)}.latest-change{margin:14px 0 0;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:10px 14px;font-size:13.5px;color:var(--muted)}.latest-change summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none;min-height:26px;font-weight:600;color:var(--text)}.latest-change summary::-webkit-details-marker{display:none}.latest-change-more{margin-left:auto;font-weight:500;font-size:12.5px;color:var(--primary)}.latest-change .history-detail{margin:8px 0 2px;padding-left:21px}.latest-change-plain{display:flex;align-items:center;gap:7px;margin:14px 0 0}.filter-ident{margin-left:5px;font-size:11px;font-weight:600;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:1px 7px}.identity-form{display:grid;gap:16px}.identity-intro{margin:0;color:var(--muted);font-size:13.5px;line-height:1.7}.identity-seg{display:grid;grid-template-columns:1fr 1fr;gap:10px}.identity-option{min-height:48px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font-size:15px;font-weight:600}.identity-option.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.identity-grade-label{display:block;font-size:13px;font-weight:650;margin-bottom:7px}.identity-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.brandmark{display:inline-flex;flex:0 0 auto;line-height:0}.brandmark-img{display:block;max-width:none}.brandmark-dark{display:none}:root[data-theme=dark] .brandmark-light{display:none}:root[data-theme=dark] .brandmark-dark{display:block}.brandmark-word img{height:40px;width:auto}.brandmark-emblem img{height:38px;width:38px;object-fit:contain}.topbar .brand .brand-text h1{font-size:22px;font-weight:700;line-height:1.3;white-space:normal;overflow:hidden;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.brand-text{min-width:0;padding-left:18px;border-left:1px solid color-mix(in srgb,var(--muted) 22%,transparent)}.brand .brand-text p{margin-top:3px;font-size:12px;white-space:nowrap}.brand .brand-emblem{display:none}.detail-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.detail-brand{display:inline-flex;align-items:center;min-width:0;line-height:0;border-radius:8px}.detail-brand:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.detail-word img{height:32px;width:auto}.detail-emblem{display:none}.admin-emblem img{height:36px;width:36px;object-fit:contain}.login-page{position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;left:0;right:0;bottom:-30px;height:320px;background:url(/brand/watermark.png) center bottom no-repeat;background-size:min(480px,82%);opacity:.05;pointer-events:none}:root[data-theme=dark] .login-page:before{opacity:.08}.login-card{position:relative;z-index:1}.login-emblem{margin:0 auto 4px}.login-emblem img{height:56px;width:56px;object-fit:contain}.site-footer{margin-top:56px;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}.footer-emblem{line-height:0;opacity:.92;border-radius:8px}.footer-emblem img{height:38px;width:38px;object-fit:contain}.footer-emblem:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.footer-name{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:.01em}.footer-tag{color:var(--muted);font-size:12px}.empty-emblem{line-height:0;opacity:.42;margin-bottom:2px}.empty-emblem img{height:34px;width:34px;object-fit:contain}.loading-brand{flex-direction:column;gap:10px}.loading-emblem{line-height:0;opacity:.55}.loading-emblem img{height:30px;width:30px;object-fit:contain}.qr-brand{display:flex;justify-content:center;margin-bottom:12px}.qr-word img{height:32px;width:auto}.qr-title{margin:0 0 14px;text-align:center;font-size:15px;font-weight:600;line-height:1.5;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qr-box{border:1px solid var(--border)}.share-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:32px 16px}.share-card{width:min(460px,100%);background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:36px 32px;text-align:center}.share-word{display:flex;justify-content:center;margin-bottom:18px}.share-word img{height:38px;width:auto}.share-meta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}.share-date{color:var(--muted);font-size:13px}.share-title{margin:0 0 18px;font-size:23px;line-height:1.45;letter-spacing:-.01em}.share-qr{width:fit-content;min-height:0;margin:0 auto}.share-cta{width:100%;margin-top:20px}@media (max-width: 600px){.brand .brand-word{display:none}.brand .brand-emblem{display:inline-flex}.brandmark-emblem img{height:34px;width:34px}.detail-word{display:none}.detail-emblem{display:inline-flex}.detail-emblem img{height:32px;width:32px}.brand-text{padding-left:12px}.topbar .brand .brand-text h1{font-size:18px}.brand .brand-text p{font-size:11px}.share-card{padding:28px 20px}.share-title{font-size:20px}}
