@import"https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/static/pretendard.css";:root{--font-sans: "Pretendard Variable", "Pretendard", "Noto Sans KR", sans-serif;--color-bg: #f3f4f6;--color-bg-gradient: #f3f4f6;--color-surface: #ffffff;--color-border: #e1e5ec;--color-text: #121827;--color-muted: #6b7280;--color-primary: #12bd84;--color-primary-soft: #e9fbf5;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #dc2626;--color-shell: #303946;--color-shell-deep: #252d38;--shadow-soft: 0 6px 16px rgba(15, 23, 42, .06)}:root[data-theme=dark]{--color-bg: #111827;--color-bg-gradient: #111827;--color-surface: #1f2937;--color-border: #374151;--color-text: #e5e7eb;--color-muted: #9ca3af;--color-primary-soft: rgba(18, 189, 132, .14);--color-shell: #141b2a;--color-shell-deep: #0f172a;--shadow-soft: 0 8px 18px rgba(0, 0, 0, .2)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg)}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:62px minmax(0,1fr);grid-template-rows:46px minmax(0,1fr);grid-template-areas:"appbar appbar" "sidebar main";background:var(--color-bg)}.app-topbar{grid-area:appbar;background:var(--color-shell);color:#fff;display:flex;align-items:center;justify-content:space-between;min-width:0;padding:0 12px;border-bottom:1px solid rgba(255,255,255,.06);z-index:60}.app-brand{display:flex;align-items:center;gap:8px;min-width:0}.app-brand-mark{width:32px;height:32px;border-radius:9px;box-shadow:0 0 0 1px #ffffff1f}.app-brand strong{font-size:16px;font-weight:800;white-space:nowrap}.app-icon-button,.user-menu-trigger{border:0;color:#f8fafc;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.app-icon-button:hover,.user-menu-trigger:hover{background:#ffffff1a}.app-topbar-actions{display:flex;align-items:center;gap:10px}.app-session-timer{min-width:88px;height:28px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:#ffffff1f;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#f8fafc;font-size:12px;font-weight:800}.app-icon-button{width:28px;height:28px;border-radius:8px;color:#e2e8f0}.user-menu{position:relative}.user-menu-trigger{height:32px;min-width:50px;gap:6px;border-radius:999px;padding:3px 8px 3px 3px;background:#ffffff1f}.user-avatar{width:26px;height:26px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#153238;background:#7bd0c9;font-weight:800}.user-avatar-lg{width:46px;height:46px;font-size:18px;flex:0 0 auto}:root[data-theme=dark] .topbar,:root[data-theme=dark] .nav-flyout,:root[data-theme=dark] .user-menu-panel,:root[data-theme=dark] .card,:root[data-theme=dark] .table-card,:root[data-theme=dark] .data-table-wrap,:root[data-theme=dark] .notice-stats-grid,:root[data-theme=dark] .search-input-wrap,:root[data-theme=dark] .soft-select-trigger,:root[data-theme=dark] .soft-select-menu,:root[data-theme=dark] .input,:root[data-theme=dark] .select,:root[data-theme=dark] .notice-editor,:root[data-theme=dark] .notice-view,:root[data-theme=dark] .file-uploader{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}:root[data-theme=dark] .topbar,:root[data-theme=dark] .card-head,:root[data-theme=dark] .data-table th,:root[data-theme=dark] .data-table td,:root[data-theme=dark] .notice-editor-toolbar,:root[data-theme=dark] .notice-editor-status{border-color:var(--color-border)}:root[data-theme=dark] .topbar h1,:root[data-theme=dark] .topbar-title,:root[data-theme=dark] .page-head h1,:root[data-theme=dark] .stats-value,:root[data-theme=dark] .section-nav-link:hover,:root[data-theme=dark] .section-nav-link.active,:root[data-theme=dark] .top-tab:hover,:root[data-theme=dark] .top-tab.active,:root[data-theme=dark] .user-menu-profile strong,:root[data-theme=dark] .btn-ghost{color:var(--color-text)}:root[data-theme=dark] .nav-flyout-head h2,:root[data-theme=dark] .search-input,:root[data-theme=dark] .input,:root[data-theme=dark] .select{color:var(--color-text)}:root[data-theme=dark] .section-nav-link:hover,:root[data-theme=dark] .section-nav-link.active,:root[data-theme=dark] .data-table th,:root[data-theme=dark] .notice-editor-toolbar,:root[data-theme=dark] .notice-editor-status{background:#273244}:root[data-theme=dark] .data-table td{color:#d1d5db}:root[data-theme=dark] .data-table tbody tr:hover td{background:#223047}:root[data-theme=dark] .stats-card-active .stats-button{background:#12bd841a}:root[data-theme=dark] .soft-select-option:hover,:root[data-theme=dark] .soft-select-option.active{background:#273244}:root[data-theme=dark] .btn-ghost,:root[data-theme=dark] .user-menu-logout{background:transparent;border-color:var(--color-border);color:var(--color-text)}:root[data-theme=dark] .management-table-panel{background:var(--color-surface);border-color:var(--color-border)}:root[data-theme=dark] .pagination-page{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}:root[data-theme=dark] .stats-value,:root[data-theme=dark] .pagination-page:hover:not(:disabled){color:var(--color-primary)}:root[data-theme=dark] .pagination-page.active,:root[data-theme=dark] .pagination-page:disabled.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}:root[data-theme=dark] .management-search-icon{color:var(--color-text)}:root[data-theme=dark] .callout-error{background:#dc26261f;border-color:#f8717161;color:#fca5a5}.user-menu-panel{position:absolute;right:0;top:calc(100% + 6px);width:300px;border:1px solid #e2e7ef;border-radius:12px;background:#fff;color:var(--color-text);box-shadow:0 14px 30px #0f172a24;overflow:hidden;z-index:90}.user-menu-profile{display:flex;align-items:center;gap:14px;padding:18px 20px}.user-menu-profile strong{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.user-menu-profile p{margin-top:4px;color:#94a3b8;font-size:13px}.user-menu-logout{width:calc(100% - 40px);height:42px;margin:0 20px 18px;border:1px solid #d7dde7;border-radius:7px;background:#fff;color:#111827;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:700;cursor:pointer}.user-menu-logout:hover{background:#f8fafc}.sidebar{grid-area:sidebar;position:relative;z-index:55;background:var(--color-shell);border-right:1px solid rgba(255,255,255,.06);padding:8px 0;overflow:visible}.primary-nav{display:flex;flex-direction:column;align-items:center;gap:3px}.primary-nav-item{width:100%;display:flex;justify-content:center}.primary-nav-link{width:56px;min-height:64px;border-radius:0;color:#e7edf6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:10px;font-weight:700;text-align:center;transition:background-color .2s ease,color .2s ease}.primary-nav-icon-box{width:34px;height:34px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:currentColor;transition:background-color .2s ease,color .2s ease}.primary-nav-icon{color:currentColor;flex:0 0 auto}.primary-nav-label{max-width:56px;min-height:20px;overflow:hidden;line-height:1.15;text-overflow:clip;white-space:normal;word-break:keep-all}.primary-nav-link:hover .primary-nav-icon-box{background:#ffffff14}.primary-nav-link.active{background:transparent}.primary-nav-link.active .primary-nav-icon-box{background:var(--color-primary);color:#fff}.primary-nav-link.active .primary-nav-label{color:var(--color-primary)}.nav-flyout{position:fixed;left:62px;top:46px;bottom:0;width:250px;background:#fafbfc;border-right:1px solid #dfe4ec;padding:20px 12px;overflow-y:auto;box-shadow:12px 0 28px #0f172a14;opacity:0;pointer-events:none;transform:translate(-8px);transition:opacity .16s ease,transform .16s ease;z-index:54}.primary-nav-item.open .nav-flyout{opacity:1;pointer-events:auto;transform:translate(0)}.nav-flyout-head{padding:0 12px 16px}.nav-flyout-head h2{color:#111827;font-size:19px;font-weight:800;line-height:1.2}.section-nav{display:flex;flex-direction:column;gap:6px}.section-nav-link{min-height:40px;border-radius:8px;color:#5f6b7a;display:flex;align-items:center;gap:9px;padding:0 12px;font-size:14px;font-weight:700;transition:background-color .2s ease,color .2s ease}.section-nav-link:hover{background:#eff2f7;color:#111827}.section-nav-link.active{background:#eef0f5;color:#101828;font-weight:800}.section-nav-icon{flex:0 0 auto;color:currentColor}.main-content{grid-area:main;min-width:0;background:var(--color-bg)}.topbar{min-height:52px;background:#fff;border-bottom:1px solid #e6eaf0;padding:0 26px;display:flex;align-items:center;justify-content:flex-start;gap:16px}.topbar-title{display:flex;align-items:center;gap:8px;min-width:0;color:#111827}.topbar h1{font-size:18px;font-weight:800;white-space:nowrap}.topbar p{color:#9ca3af;font-size:14px;font-weight:800;white-space:nowrap}.topbar-divider{width:1px;height:22px;background:#e3e7ef}.top-tabs{min-width:0;align-self:stretch;display:flex;align-items:center;gap:24px;overflow-x:auto}.top-tab{height:100%;border-bottom:3px solid transparent;color:#9ca3af;display:inline-flex;align-items:center;white-space:nowrap;font-size:14px;font-weight:800}.top-tab:hover,.top-tab.active{color:#111827}.top-tab.active{border-bottom-color:var(--color-primary)}.content-area{padding:18px 26px 28px}.page{display:flex;flex-direction:column;gap:12px}.page-head h1{font-size:18px;margin-bottom:4px;font-weight:800}.page-head p{color:var(--color-muted);font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.management-page{gap:18px}.management-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.notice-stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border:1px solid var(--color-border);border-radius:14px;overflow:hidden;background:#fff}.notice-stats-grid .card{border:0;border-right:1px solid #edf0f8;border-radius:0;box-shadow:none}.notice-stats-grid .card:last-child{border-right:0}.notice-stats-grid .stats-button{min-height:116px}.notice-stats-grid .stats-value{font-size:20px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-soft)}.card-head{border-bottom:1px solid #edf0f8;padding:14px 16px}.card-head h3{font-size:14px}.card-head p{margin-top:4px;font-size:12px;color:var(--color-muted)}.stats-card{padding:0;overflow:hidden}.stats-button{width:100%;border:0;background:transparent;text-align:left;min-height:76px;padding:14px 16px;color:inherit;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.stats-button:disabled{cursor:default}.stats-card-active{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px #12bd8442,var(--shadow-soft)}.stats-card-active .stats-button{background:#f4fffb}.stats-label{color:var(--color-muted);font-size:12px;font-weight:700}.stats-value{display:block;align-self:flex-end;font-size:20px;letter-spacing:0;color:var(--color-primary)}.table-card{padding:12px;box-shadow:none}.management-table-panel{border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:none;padding:12px}.toolbar{display:grid;grid-template-columns:1fr 220px;gap:10px;margin-bottom:10px}.toolbar-with-action{grid-template-columns:1fr 220px auto}.toolbar-with-action .btn{min-width:96px}.notice-toolbar{grid-template-columns:minmax(320px,540px) 1fr auto}.management-toolbar{grid-template-columns:minmax(220px,300px) 132px;gap:8px;margin-bottom:12px;align-items:center}.management-search{position:relative;min-width:0}.management-search .field{display:block}.management-search-input{width:100%;min-height:40px;padding-right:42px}.management-search-icon{position:absolute;top:50%;right:12px;color:#111827;pointer-events:none;transform:translateY(-50%)}.management-status-select{width:100%;min-height:40px}.search-input-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:7px;background:#fff;padding:0 12px;min-height:40px}.search-input-icon{color:#9aa3b2;flex:0 0 auto}.search-input{width:100%;border:0;outline:none;background:transparent;color:var(--color-text);font-size:14px}.soft-select{position:relative}.soft-select-trigger{width:100%;border:1px solid var(--color-border);background:#fff;border-radius:7px;color:var(--color-text);font-size:14px;line-height:20px;padding:9px 12px;min-height:40px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.soft-select-icon{color:#6b7280;transition:transform .2s ease}.soft-select.open .soft-select-trigger{border-color:var(--color-primary);box-shadow:0 0 0 3px #12bd8421}.soft-select.open .soft-select-icon{transform:rotate(180deg)}.soft-select-menu{position:absolute;z-index:40;top:calc(100% + 8px);left:0;right:0;border:1px solid var(--color-border);border-radius:12px;background:#fff;box-shadow:0 14px 24px #0f172a1f;overflow:hidden;padding:6px}.soft-select-option{width:100%;border:0;background:transparent;color:var(--color-text);text-align:left;padding:10px 12px;border-radius:8px;font-size:14px;cursor:pointer}.soft-select-option:hover{background:#f3f5ff}.soft-select-option.active{background:#eef0ff;color:var(--color-primary);font-weight:600}.notice-modal{width:min(1400px,98vw);max-height:94vh}.notice-modal-body{display:grid;gap:14px}.notice-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.notice-view{border:1px solid var(--color-border);border-radius:10px;background:#f8f9fd;padding:11px 12px;min-height:44px;font-size:14px;white-space:pre-wrap}.notice-view-lg{min-height:260px}.notice-textarea{min-height:140px;resize:vertical}.notice-textarea-lg{min-height:260px}.notice-editor{border:1px solid var(--color-border);border-radius:10px;background:#fff;overflow:hidden}.notice-editor-toolbar{min-height:42px;padding:6px 8px;border-bottom:1px solid #e8ebf4;background:#f8f9fd;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.notice-editor-button{width:32px;height:30px;border:1px solid transparent;border-radius:8px;background:transparent;color:#374151;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.notice-editor-button:hover{background:#eef1fb}.notice-editor-button.active{border-color:#c8d0e8;background:#eef0ff;color:var(--color-primary)}.notice-editor-button:disabled{color:#a1a8b6;cursor:not-allowed;background:transparent}.notice-editor-divider{width:1px;height:22px;margin:0 4px;background:#dde2ef}.notice-editor-status{padding:8px 14px;border-bottom:1px solid #e8ebf4;color:#4b5563;background:#f8f9fd;font-size:13px}.notice-editor-content{min-height:300px;padding:14px;outline:none;font-size:14px;line-height:1.7}.notice-editor-content p{margin:0 0 10px}.notice-editor-content h2{margin:0 0 12px;font-size:20px}.notice-editor-content ul,.notice-editor-content ol{margin:0 0 10px;padding-left:24px}.notice-editor-image{max-width:100%;height:auto;display:block;margin:10px 0;border-radius:8px}.file-uploader{border:1px solid var(--color-border);border-radius:10px;background:#fff;min-height:74px;padding:12px;display:flex;align-items:center;gap:12px}.file-uploader-trigger{border:1px solid #c8d0e8;background:#f4f7ff;color:#1f2937;border-radius:8px;height:38px;padding:0 14px;display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}.file-uploader-name{color:#4b5563;font-size:14px}.file-uploader-input{display:none}.file-uploader-help{margin:8px 0 0;color:#6b7280;font-size:13px}.callout{border:1px solid transparent;border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:13px}.callout-error{border-color:#f0c5c5;background:#fff3f3;color:#a81c1c}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12px;color:#4b5563}.input,.select{border:1px solid var(--color-border);background:#fff;border-radius:7px;color:var(--color-text);font-size:14px;line-height:20px;padding:9px 12px;outline:none}.input:focus,.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #12bd8421}.btn{border:none;border-radius:7px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s ease,filter .15s ease}.btn:hover{filter:brightness(.98)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.62;cursor:not-allowed;transform:none;filter:none}.btn-block{width:100%}.btn-primary{color:#fff;background:#12bd84}.btn-secondary{color:#0f172a;background:#e9fbf5}.btn-ghost{color:#374151;background:transparent;border:1px solid var(--color-border)}.badge{border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-neutral{background:#eef1fb;color:#4b5563}.badge-info{background:#e9f1ff;color:#2454d4}.badge-success{background:#e6f9f1;color:var(--color-success)}.badge-warning{background:#fff2e8;color:var(--color-warning)}.badge-danger{background:#ffe9e9;color:var(--color-danger)}.data-table-wrap{border:1px solid #e6eaf0;border-radius:7px;overflow:auto}.data-table{width:100%;min-width:920px;border-collapse:collapse}.data-table th{padding:10px 12px;text-align:left;font-size:12px;color:#64748b;background:#f7f8fa;border-bottom:1px solid #e6eaf0;white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid #edf0f4;font-size:13px;color:#263244;white-space:nowrap}.cell-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table tbody tr:hover td{background:#f8fbfa}.row-clickable{cursor:pointer}.data-table tbody tr:last-child td{border-bottom:none}.template-toolbar{display:grid;grid-template-columns:minmax(320px,1fr) 180px;gap:10px;margin-bottom:12px}.template-table td:last-child,.template-table th:last-child{text-align:center}.template-switch{width:28px;height:18px;border-radius:999px;border:1px solid #d8dbec;background:#e5e7eb;display:inline-flex;align-items:center;padding:1px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.template-switch>span{width:14px;height:14px;border-radius:999px;background:#fff;transition:transform .2s ease}.template-switch.on{background:var(--color-primary);border-color:var(--color-primary)}.template-switch.on>span{transform:translate(10px)}.template-detail-modal{width:min(1280px,98vw);max-height:94vh}.template-detail-head{align-items:center}.template-icon-actions{display:inline-flex;align-items:center;gap:8px}.template-icon-btn{width:30px;height:30px;border:0;background:transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:#4b5563;cursor:pointer}.template-icon-btn:hover{background:#f3f5ff}.template-tabs-bar{padding:0 20px;border-bottom:1px solid #e8ebf4;display:flex;align-items:flex-end;justify-content:space-between}.template-tabs-bar>button{border:0;background:transparent;color:#6b7280;font-size:14px;font-weight:600;padding:14px 8px 12px}.template-tabs-bar>button.active{color:var(--color-primary);border-bottom:2px solid var(--color-primary)}.template-tabs-actions{display:inline-flex;align-items:center;gap:8px;padding-bottom:8px}.template-detail-body{display:grid;gap:16px;background:#f3f4f7}.template-section-card{border:1px solid #e4e7f0;border-radius:12px;background:#f8f9fb;padding:24px 22px}.template-section-card h4{font-size:38px;margin:0 0 16px;letter-spacing:0}.template-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.template-span-2{grid-column:span 2}.template-note{min-height:170px;resize:vertical}.template-center-search{max-width:420px;margin-bottom:12px}.template-center-table{min-width:620px}.template-loading{color:#4b5563;font-size:14px}.template-confirm-modal{width:min(680px,94vw);background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-soft);padding:24px 28px 16px}.template-confirm-text{font-size:18px;line-height:1.45;color:#1f2937}.template-confirm-actions{margin-top:24px;display:flex;justify-content:flex-end;gap:10px}.snapshot-toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px;align-items:start}.snapshot-toolbar .search-input-wrap,.snapshot-toolbar .field,.snapshot-toolbar .input,.snapshot-toolbar .btn{min-width:0}.snapshot-toolbar .search-input-wrap{width:100%}.snapshot-toolbar .btn{height:44px;min-width:88px;white-space:nowrap}.snapshot-detail-modal{width:min(1120px,94vw);max-height:90vh}.snapshot-detail-body{display:grid;gap:10px;background:#f6f7fb}.snapshot-section{border:1px solid #e4e7f0;border-radius:8px;background:#fff;padding:12px}.snapshot-section h4{margin:0 0 10px;font-size:15px}.snapshot-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.snapshot-detail-body .field{gap:4px}.snapshot-detail-body .input{border-radius:8px;padding:8px 10px;font-size:13px;line-height:18px}.snapshot-span-2{grid-column:span 2}.snapshot-danger-input{color:var(--color-danger);border-color:#fecaca;background:#fff7f7}.snapshot-json-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.snapshot-json-view{min-height:180px;max-height:320px;overflow:auto;margin:0;padding:10px;border:1px solid #e4e7f0;border-radius:8px;background:#111827;color:#f9fafb;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.snapshot-list-table .data-table{min-width:0;table-layout:fixed}.snapshot-list-table .data-table th,.snapshot-list-table .data-table td{overflow:hidden;text-overflow:ellipsis}.snapshot-list-table .cell-truncate{max-width:100%}.snapshot-file-table{min-width:0;table-layout:fixed}.snapshot-file-table th:nth-child(1),.snapshot-file-table td:nth-child(1){width:64px}.snapshot-file-table th:nth-child(2),.snapshot-file-table td:nth-child(2){width:28%}.snapshot-file-table th:nth-child(3),.snapshot-file-table td:nth-child(3){width:150px}.snapshot-file-table th:nth-child(4),.snapshot-file-table td:nth-child(4){width:90px}.snapshot-file-table th:nth-child(5),.snapshot-file-table td:nth-child(5){width:auto}.snapshot-file-table a{max-width:100%;color:var(--color-primary);text-decoration:underline}.empty-row{display:grid;place-items:center;height:120px;color:#6b7280}.pagination{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.pagination-meta{color:var(--color-muted);font-size:13px}.pagination-actions{display:flex;align-items:center;gap:8px}.management-table-panel .pagination,.pagination-numbered{justify-content:center}.pagination-page{width:34px;height:34px;border:1px solid var(--color-border);border-radius:7px;background:#fff;color:#374151;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;cursor:pointer}.pagination-page:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.pagination-page.active,.pagination-page:disabled.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff;cursor:default}.pagination-page:disabled:not(.active){opacity:.45;cursor:not-allowed}.pagination-arrow{color:#6b7280}.pagination-ellipsis{min-width:18px;color:#9aa3b2;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.detail-modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;padding:20px;z-index:50}.detail-modal{width:min(900px,95vw);max-height:85vh;background:#fff;border:1px solid var(--color-border);border-radius:14px;box-shadow:var(--shadow-soft);display:flex;flex-direction:column}.detail-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e8ebf4}.detail-modal-body{padding:16px;overflow:auto}.terms-modal-body{gap:18px}.terms-field{gap:10px}.detail-grid{display:grid;gap:8px}.detail-row{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:start;border:1px solid #eef1f8;border-radius:10px;padding:10px 12px}.detail-key{color:#6b7280;font-size:13px;font-weight:600}.detail-value{margin:0;font-family:var(--font-sans);font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.fm-modal{width:min(960px,calc(100vw - 48px));border:0;overflow:hidden}.fm-modal .detail-modal-head{flex:0 0 auto;min-height:36px;padding:5px 12px;background:#303948;color:#fff;border-bottom:0;border-radius:0}.fm-modal .detail-modal-head h3{margin:0;color:#fff;font-size:14px;font-weight:800}.fm-modal .detail-modal-head .btn-secondary{color:#fff;background:#12bd8433;border:1px solid rgba(18,189,132,.42)}.fm-modal .detail-modal-head .btn-ghost{color:#fff;background:#ffffff0f;border-color:#ffffff47}.fm-head-actions{display:flex;align-items:center;gap:8px}.fm-head-icon-btn{width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:#ffffffe6;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.fm-head-icon-btn:hover{background:#ffffff1a;color:#fff}.fm-tabs{flex:0 0 auto;display:flex;align-items:stretch;gap:16px;padding:0 16px;min-height:48px;border-bottom:1px solid #e8ebf4;overflow-x:auto;overflow-y:hidden}.fm-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#4b5563;padding:12px 2px;font-size:14px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center}.fm-tabs button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.fm-modal .detail-modal-body{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto}.fm-sections{display:grid;gap:12px;min-width:0}.fm-section{border:1px solid #e8ebf4;border-radius:10px;padding:14px;background:#fff;min-width:0}.fm-section h4{margin:0 0 10px;font-size:18px}.fm-grid{display:grid;gap:10px}.fm-grid-1{grid-template-columns:1fr}.fm-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.fm-field{display:flex;flex-direction:column;gap:6px}.fm-switch-row{display:inline-flex;align-items:center;gap:8px;margin-bottom:10px}.fm-switch{width:28px;height:16px;border-radius:999px;border:1px solid #d8dbec;background:#e5e7eb;display:inline-flex;align-items:center;padding:1px;transition:background-color .2s ease,border-color .2s ease}.fm-switch>span{width:12px;height:12px;border-radius:999px;background:#fff;box-shadow:0 1px 2px #0f172a24;transition:transform .2s ease}.fm-switch.on{background:var(--color-primary);border-color:var(--color-primary)}.fm-switch.on>span{transform:translate(12px)}.fm-switch-label{font-size:12px;color:#4b5563}.fm-switch-toggle-btn{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.fm-switch-toggle-btn:disabled{cursor:not-allowed}.fm-stop-wrap{margin-top:8px;border:1px solid #e3e7f4;border-radius:10px;background:#f9faff;padding:12px;display:grid;gap:10px}.fm-state-switch-row{display:inline-flex;align-items:center;gap:10px;margin-bottom:10px}.fm-stop-days{display:flex;flex-wrap:wrap;gap:8px}.fm-stop-day-btn{border:1px solid #d5d9e8;border-radius:8px;background:#fff;color:#4b5563;padding:8px 12px;font-size:12px;font-weight:600;cursor:pointer}.fm-stop-day-btn.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:#047857}.fm-stop-input{min-height:40px}.fm-stop-textarea{min-height:88px;resize:vertical}.fm-confirm-backdrop{z-index:90;background:#0f172a7a}.fm-confirm-modal{width:min(360px,92vw);border:1px solid var(--color-border);border-radius:12px;background:#fff;box-shadow:var(--shadow-soft);padding:18px 16px}.fm-stop-modal{width:min(620px,94vw);border:1px solid var(--color-border);border-radius:12px;background:#fff;box-shadow:var(--shadow-soft);padding:18px 16px}.fm-stop-modal h4{margin:0;font-size:18px;color:#1f2937}.fm-stop-modal .fm-stop-wrap{margin-top:14px}.fm-confirm-modal h4{margin:0;font-size:20px;color:#1f2937}.fm-confirm-modal h4.danger{color:#dc2626}.fm-confirm-modal p{margin:10px 0 0;color:#4b5563;line-height:1.5}.fm-confirm-actions{margin-top:14px;display:flex;justify-content:flex-end;gap:8px}.fm-label{font-size:12px;color:#4b5563}.fm-value{min-height:42px;border:1px solid #d8dbec;border-radius:8px;background:#f8f9fd;display:flex;align-items:center;padding:0 10px;font-size:13px}.fm-file-row{display:flex;align-items:center;gap:8px}.fm-file-name{flex:1}.fm-empty{margin:0;color:#6b7280;font-size:13px}.fm-footer{border-top:1px solid #e8ebf4;padding:12px 16px;display:flex;justify-content:flex-end;gap:8px}.notice-delete-button{color:var(--color-danger)}.notice-delete-button:hover{color:#b91c1c}.fm-table-wrap{border:1px solid #e8ebf4;border-radius:10px;max-width:100%;overflow-x:auto;overflow-y:hidden}.fm-table{width:100%;min-width:640px;border-collapse:collapse}.fm-table th{background:#f8f9fd;color:#6b7280;font-size:12px;font-weight:600;padding:9px 10px;text-align:left;border-bottom:1px solid #e8ebf4}.fm-table td{padding:10px;border-bottom:1px solid #eef1f8;font-size:13px;color:#334155}.fm-table tbody tr:last-child td{border-bottom:none}.fm-table-empty{text-align:center;color:#6b7280}.fm-linked-table{min-width:100%;table-layout:fixed}.fm-linked-table th,.fm-linked-table td{overflow-wrap:anywhere}.fm-linked-table th:last-child,.fm-linked-table td:last-child{width:108px;text-align:center}.fm-link-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.fm-link-filter-group{display:inline-flex;gap:8px;flex-wrap:wrap}.fm-link-filter-btn{border:1px solid #d5dbec;border-radius:10px;background:#fff;color:#4b5567;font-size:13px;font-weight:600;padding:8px 14px;cursor:pointer;transition:all .2s ease}.fm-link-filter-btn:hover{border-color:var(--color-primary);color:#047857}.fm-link-filter-btn.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.fm-link-pagination{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.fm-link-pagination-meta{color:#6b7280;font-size:13px}.fm-link-pagination-actions{display:inline-flex;gap:8px}.sm-template-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 160px;gap:10px;margin-bottom:12px}.sm-template-filter .soft-select-trigger{min-height:44px}.sm-template-table{min-width:900px}.sm-template-table th:last-child,.sm-template-table td:last-child{text-align:center}.fm-permission-level{max-width:280px}.fm-permission-table{min-width:760px}.fm-permission-table th:nth-child(2),.fm-permission-table th:nth-child(3),.fm-permission-table th:nth-child(4),.fm-permission-table td:nth-child(2),.fm-permission-table td:nth-child(3),.fm-permission-table td:nth-child(4){text-align:center;width:120px}.fm-group-row td{font-weight:700;background:#f8f9fd;border-top:2px solid #d7dced}.fm-menu-cell{white-space:nowrap}.fm-menu-depth-0{padding-left:10px}.fm-menu-depth-1{padding-left:26px!important}.fm-menu-depth-2{padding-left:42px!important}.fm-check{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid #d8dbec;background:#f8f9fd;color:transparent;font-weight:700}.fm-check.on{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.fm-check-btn{cursor:pointer}.fm-check-btn:focus-visible{outline:2px solid rgba(18,189,132,.42);outline-offset:2px}.file-preview-backdrop{z-index:80;background:#0f172a99}.file-preview-modal{width:min(1120px,94vw);height:min(88vh,920px);background:#fff;border:1px solid var(--color-border);border-radius:14px;display:flex;flex-direction:column;box-shadow:var(--shadow-soft)}.file-preview-head{padding:12px 16px;border-bottom:1px solid #e8ebf4;display:flex;align-items:center;justify-content:space-between;gap:12px}.file-preview-head h4{margin:0;font-size:15px}.file-preview-actions{display:flex;align-items:center;gap:8px}.file-preview-zoom{display:inline-flex;align-items:center;gap:6px;padding-right:2px}.file-preview-zoom .btn{min-width:34px;min-height:34px;padding:0 10px}.file-preview-zoom-value{min-width:56px;text-align:center;font-size:13px;color:#4b5563}.file-preview-body{flex:1;background:#f7f8fc;padding:12px;overflow:auto}.file-preview-image-wrap{min-width:100%;min-height:100%;display:flex;align-items:flex-start;justify-content:center}.file-preview-image{max-width:none;max-height:none;width:auto;height:auto;border-radius:8px;box-shadow:0 8px 22px #0f172a1f;background:#fff}.file-preview-iframe{width:100%;height:100%;border:1px solid #d8dbec;border-radius:8px;background:#fff}.file-preview-fallback{color:#4b5563;font-size:14px;text-align:center;background:#fff;border:1px solid #d8dbec;border-radius:10px;padding:16px}.auth-error-backdrop{position:fixed;inset:0;z-index:120;background:#0f172a80;display:grid;place-items:center;padding:16px}.auth-error-modal{width:min(420px,96vw);background:#fff;border:1px solid var(--color-border);border-radius:14px;box-shadow:var(--shadow-soft);padding:18px}.auth-error-modal h3{margin:0;font-size:18px}.auth-error-modal p{margin-top:10px;color:#4b5563;line-height:1.6}.auth-error-actions{margin-top:16px;display:flex;justify-content:flex-end}.toast-viewport{position:fixed;right:20px;bottom:20px;z-index:140;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast-item{min-width:220px;max-width:min(420px,calc(100vw - 40px));border-radius:10px;border:1px solid #d8dbec;background:#fff;color:#1f2937;padding:10px 12px;box-shadow:var(--shadow-soft);font-size:14px;line-height:1.4}.toast-success{border-color:#ccefd9;background:#f0fdf4;color:#166534}.toast-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.toast-info{border-color:#c7d2fe;background:#eef2ff;color:#3730a3}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(380px,520px);background:#fff}.login-visual-panel{min-height:100vh;background:linear-gradient(135deg,#e8fff7,#f8fffd 58%,#eef7ff);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(28px,4vw,48px);padding:clamp(38px,6vw,84px);overflow:hidden}.login-visual-copy{width:min(640px,100%);text-align:center;color:#111827}.eyebrow{display:inline-flex;border:1px solid rgba(18,189,132,.22);background:#fff;border-radius:999px;padding:6px 10px;font-size:12px;color:#0f9f75;margin-bottom:14px;font-weight:800}.login-visual-copy h1{font-size:clamp(30px,3vw,44px);line-height:1.16;margin-bottom:12px;letter-spacing:0;font-weight:900}.login-desc{color:#4b5563;line-height:1.7;font-size:15px}.login-visual-image{width:min(720px,94%);height:auto;display:block;filter:drop-shadow(0 26px 34px rgba(15,23,42,.18))}.login-card{width:min(430px,calc(100% - 48px));justify-self:center;align-self:center;background:#fff;border:0;border-radius:0;box-shadow:none;padding:0}.login-card-head{display:flex;align-items:center;gap:14px;margin-bottom:28px}.login-logo{width:38px;height:38px;border-radius:10px}.login-card h2{font-size:28px;line-height:1.2;font-weight:900}.login-card p{margin-top:5px;color:#8a94a6;font-size:13px}.login-form{display:flex;flex-direction:column;gap:16px}.login-form .field{gap:8px}.login-form .field-label{color:#111827;font-size:13px;font-weight:800}.login-form .input{min-height:52px;border-radius:8px;font-size:15px;padding:14px}.login-form .btn{min-height:52px;margin-top:6px;border-radius:8px;font-size:15px;font-weight:800}.form-error{color:var(--color-danger);font-size:13px}@media(max-width:1199px){.stats-grid,.management-stats-grid,.notice-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notice-stats-grid .card{border-right:0;border-bottom:1px solid #edf0f8}.notice-stats-grid .card:nth-last-child(-n+2){border-bottom:0}}@media(max-width:960px){.app-shell{grid-template-columns:1fr;grid-template-rows:46px 64px minmax(0,1fr);grid-template-areas:"appbar" "sidebar" "main"}.app-brand-mark{width:32px;height:32px}.app-brand strong{font-size:16px}.sidebar{padding:7px 10px;border-right:0;border-bottom:1px solid rgba(255,255,255,.06);overflow-x:auto;overflow-y:hidden}.primary-nav{flex-direction:row;align-items:center;overflow-x:auto;padding-bottom:0}.primary-nav-item{flex:0 0 60px}.primary-nav-link{min-height:52px}.nav-flyout{inset:110px 0 auto;width:auto;max-height:calc(100vh - 110px);padding:12px 16px;border-right:0;border-bottom:1px solid #dfe4ec;overflow-x:auto;overflow-y:auto}.nav-flyout-head{padding:0 0 12px}.nav-flyout-head h2{font-size:18px}.section-nav{flex-direction:row;overflow-x:auto;padding-bottom:2px}.section-nav-link{flex:0 0 auto;min-height:38px;padding:0 14px;font-size:14px}.main-content{min-width:0}.topbar{min-height:52px;gap:14px;padding:0 16px}.top-tabs{gap:22px}.top-tab{font-size:14px}.toolbar,.toolbar-with-action{grid-template-columns:1fr}.management-toolbar{grid-template-columns:minmax(220px,1fr) 140px}.template-toolbar,.snapshot-toolbar{grid-template-columns:1fr}.template-tabs-bar{flex-direction:column;align-items:flex-start;gap:8px;padding-top:6px}.template-tabs-actions{padding-bottom:12px}.template-detail-grid{grid-template-columns:1fr}.template-span-2{grid-column:span 1}.notice-toolbar{grid-template-columns:1fr}.content-area{padding:14px}.login-page{grid-template-columns:1fr}.login-visual-panel{min-height:auto;padding:42px 24px}.login-visual-copy h1{font-size:34px}.login-card{width:min(430px,calc(100% - 40px));padding:34px 0 48px}}@media(max-width:640px){.app-brand strong,.app-session-timer,.app-icon-button{display:none}.app-topbar{padding:0 10px}.user-menu-panel{width:min(330px,calc(100vw - 20px));right:-4px}.topbar{min-height:54px;gap:12px;padding:0 14px}.topbar-title{gap:10px}.topbar h1{font-size:18px}.topbar p{font-size:14px}.topbar-divider{height:22px}.top-tabs{gap:18px}.top-tab{font-size:14px}.content-area{padding:14px}.stats-grid,.management-stats-grid,.management-toolbar{grid-template-columns:1fr}.pagination{align-items:flex-start;flex-direction:column}.pagination-actions{flex-wrap:wrap}.management-table-panel .pagination,.pagination-numbered{align-items:center}.detail-row{grid-template-columns:1fr;gap:6px}.fm-grid-2,.sm-template-toolbar{grid-template-columns:1fr}.fm-link-toolbar{justify-content:flex-start}.fm-link-pagination{flex-direction:column;align-items:flex-start}.notice-form-grid,.snapshot-info-grid,.snapshot-json-grid{grid-template-columns:1fr}.snapshot-span-2{grid-column:span 1}}
