:root{--navy:#1764c0;--navy-2:#1255a5;--ink:#242830;--muted:#676d78;--line:#e1e4e9;--bg:#f5f6f8;--white:#fff;--amber:#936013;--amber-bg:#fff6e4;--green:#18764f;--green-bg:#e9f6ef;--red:#b53230;--red-bg:#fff0ee;--blue-bg:#eaf2ff;--motion-press:120ms;--motion-ui:200ms;--motion-enter:320ms;--ease-out:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box;letter-spacing:0}html{scrollbar-gutter:stable}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #5b97e0;outline-offset:3px}.main:focus{outline:none}.skip-link{position:fixed;top:-80px;left:16px;padding:12px 20px;background:white;border:2px solid var(--navy);z-index:100}.skip-link:focus{top:12px}.app-shell{min-height:100dvh;display:flex}.sidebar{width:224px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;height:100dvh;padding:24px 14px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fafbfc}.brand{display:flex;align-items:center;gap:10px;padding:0 6px 28px}.brand-mark{width:40px;height:40px;flex-shrink:0;background:var(--navy);color:white;display:grid;place-items:center;border-radius:12px;box-shadow:0 3px 7px #1764c01a}.brand h1{font-size:15px;line-height:1.4;margin:0 0 4px;font-weight:650}.brand p{font-size:12px;color:var(--muted);margin:0}.nav{display:grid;grid-gap:4px;gap:4px}.nav-label{padding:0 12px 8px;font-size:12px;color:var(--muted)}.nav a{min-height:46px;display:flex;align-items:center;gap:11px;padding:8px 12px;border-radius:8px;color:#535a65;font-size:13px;transition:background var(--motion-ui),color var(--motion-ui)}.nav a:hover{background:#eceff3}.nav a.active{background:#e8eef7;color:#174f97;font-weight:600}.nav-icon{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:7px;color:white}.tone-blue{background:#2670d1}.tone-green{background:#218755}.tone-orange{background:#b96b16}.tone-violet{background:#7954bb}.tone-teal{background:#147f87}.tone-pink{background:#b44771}.tone-gray{background:#626b77}.tone-indigo{background:#5367b9}.management-nav{display:grid;grid-gap:4px;gap:4px;margin-top:24px}.sidebar-footer{margin-top:auto;padding:20px 10px 0;display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}.sidebar-footer span{color:#8a9099}.main{flex:1 1;min-width:0}.topbar{position:relative;z-index:35;height:68px;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.breadcrumb,.topbar{display:flex;align-items:center;gap:12px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb strong{color:var(--ink);font-weight:500}.breadcrumb-divider{color:#b7bcc5}.top-user{align-items:center;gap:12px;color:var(--muted);font-size:13px}.top-user,.top-user form{display:flex}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e7ecf4;color:#315b8d;font-weight:600}.mobile-admin{display:none}.page{padding:28px 32px 40px;max-width:1540px;margin:0 auto;position:relative;animation:page-enter var(--motion-enter) var(--ease-out) backwards}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head h2{font-size:24px;font-weight:650;margin:0 0 5px;line-height:1.4}.page-head p{font-size:13px;color:var(--muted);margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions,.btn{align-items:center}.btn{min-height:38px;border:1px solid #d6dbe2;border-radius:8px;padding:8px 13px;display:inline-flex;justify-content:center;gap:7px;background:#fff;color:var(--ink);font-size:13px;font-weight:500;white-space:normal;text-align:center;transition:background var(--motion-ui),border-color var(--motion-ui),box-shadow var(--motion-ui),transform var(--motion-press)}.btn:hover{background:#f2f4f7;border-color:#b5bdc9}.btn:active{transform:scale(.97)}.btn.primary{background:var(--navy);border-color:var(--navy);color:white;box-shadow:0 2px 4px #1764c018}.btn.primary:hover{background:var(--navy-2)}.btn.danger{color:var(--red);background:var(--red-bg);border-color:#efd0cd}.btn.amber{background:var(--amber-bg);color:var(--amber)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.icon-btn{width:38px;height:38px;padding:0;flex-shrink:0}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.stat-card{background:white;border:1px solid var(--line);border-radius:8px;padding:18px 20px;min-width:0}.stat-card .label{font-size:13px;color:var(--muted);margin-bottom:6px}.stat-card .value{font-size:30px;font-weight:650;line-height:1.25;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-card .value span{font-size:12px;color:var(--muted);font-weight:400;margin-left:6px}.stat-card .meta{font-size:12px;color:var(--muted);margin-top:7px}.stat-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;color:#838b97}.stat-icon{height:30px;width:30px;color:white;display:grid;place-items:center;border-radius:8px}a.stat-card{transition:box-shadow var(--motion-ui),border-color var(--motion-ui),transform var(--motion-press)}a.stat-card:hover{border-color:#b5c4d9;box-shadow:0 4px 12px #24283008}a.stat-card:active{transform:scale(.985)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 20px}.section-title h3{font-size:15px;margin:0;font-weight:600}.section-title>span{font-size:12px;color:var(--muted)}.section-title a{display:flex;align-items:center;gap:4px;color:var(--navy);font-size:12px;min-height:32px}.app-library{margin-bottom:28px}.launcher-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-gap:16px;gap:16px;max-width:1100px}.launcher{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:13px;font-weight:500;min-width:0;padding:6px 0}.app-icon{width:62px;height:62px;border-radius:17px;display:grid;place-items:center;color:white;box-shadow:inset 0 1px 0 #ffffff40,0 4px 7px #20283012;transition:transform var(--motion-ui) var(--ease-out),box-shadow var(--motion-ui)}.launcher:hover .app-icon{transform:translateY(-3px);box-shadow:inset 0 1px 0 #ffffff40,0 6px 12px #2028301c}.launcher:active .app-icon{transform:scale(.92)}.cycle-band{margin:24px 0 28px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:24px}.cycle-band,.cycle-caption{display:flex;align-items:center}.cycle-caption{gap:12px;min-width:190px}.cycle-caption>svg{color:var(--navy)}.cycle-caption h3{font-size:14px;margin:0}.cycle-caption span{font-size:12px;color:var(--muted)}.cycle-caption>a{display:grid;place-items:center;width:32px;height:32px;color:var(--muted)}.cycle-steps{padding:0;margin:0;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;flex:1 1}.cycle-steps li{flex:1 1;position:relative}.cycle-steps li:not(:last-child):after{content:"";position:absolute;top:15px;right:-8px;width:16px;height:1px;background:#c9cfd8}.cycle-steps a{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);min-height:36px}.step-index{width:28px;height:28px;flex-shrink:0;border-radius:50%;border:1px solid #c6ced8;display:grid;place-items:center;background:#fff;font-size:12px}.cycle-steps .done{color:var(--green)}.done .step-index{background:var(--green-bg);border-color:#a2cdb8}.home-columns{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:40px;gap:40px}.task-row{display:flex;align-items:center;gap:12px;min-height:74px;padding:12px 4px;border-bottom:1px solid var(--line);transition:background var(--motion-ui)}.task-row:hover{background:#edf1f6}.task-row>div{flex:1 1;min-width:0}.task-row strong{display:block;font-size:14px;font-weight:550}.task-row>div>span{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}.task-row>.tag{flex-shrink:0}.task-row>svg{color:var(--muted);flex-shrink:0}.task-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#2670d1}.task-dot.submitted{background:#b96b16}.task-dot.returned{background:#b44771}.bar-list{display:grid;grid-gap:20px;gap:20px;padding:12px 0}.bar-row{display:grid;grid-template-columns:126px minmax(0,1fr) 42px;grid-gap:12px;gap:12px;align-items:center;font-size:13px;min-height:24px}.bar-label{display:flex;align-items:center;gap:8px}.placement-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;display:inline-block}.placement-0{background:#2670d1}.placement-1{background:#218755}.placement-2{background:#7954bb}.placement-3{background:#147f87}.placement-4{background:#b96b16}.bar-track{height:6px;background:#e6eaf0;border-radius:4px;overflow:hidden}.bar-fill{height:100%;width:100%;transform-origin:left;border-radius:4px}.bar-row b{text-align:right;font-size:12px;font-weight:550}.panel{background:white;border-top:1px solid var(--line);border-radius:0;box-shadow:none}.panel,.panel-head{border-bottom:1px solid var(--line)}.panel-head{padding:17px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h3{margin:0;font-size:15px;font-weight:600}.panel-head>span{font-size:12px;color:var(--muted)}.panel-body{padding:20px}.table-wrap{overflow:auto;overscroll-behavior-x:contain}.data-table{width:100%;min-width:720px;border-collapse:collapse}.data-table th{background:#f9fafb;color:#646d7a;font-size:12px;font-weight:550;text-align:left;padding:12px 16px;white-space:nowrap;border-bottom:1px solid var(--line)}.data-table td{padding:16px;border-bottom:1px solid #edf0f3;white-space:nowrap;vertical-align:top}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#f8faff}.tabs{display:flex;gap:6px;overflow:auto;margin:0 0 16px;border-bottom:1px solid var(--line)}.tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:10px 14px;min-height:42px;white-space:nowrap;cursor:pointer;font:inherit}.tab:hover{color:var(--navy);background:#f5f8fc}.tab.active{color:var(--navy);border-bottom-color:var(--navy);font-weight:600}.check-label{display:inline-flex;align-items:center;gap:7px;min-height:36px;font-size:13px;color:var(--muted);white-space:nowrap}.check-label input{width:16px;height:16px;accent-color:var(--navy)}.empty-cell{text-align:center!important;color:var(--muted);padding:34px!important}.detail-grid{grid-template-columns:120px 1fr;grid-gap:12px 18px;gap:12px 18px;margin:0 0 24px;font-size:13px}.detail-grid dt{color:var(--muted)}.detail-grid dd{margin:0;color:var(--ink);word-break:break-word}.data-table .btn{font-size:12px;min-height:32px;padding:5px 9px}.data-table td .actions{flex-wrap:nowrap}.data-table .helper,.tag{font-size:12px}.tag{display:inline-flex;align-items:center;border-radius:5px;padding:4px 8px;line-height:1.5;font-weight:500}.tag.blue{background:var(--blue-bg);color:#24598a}.tag.green{background:var(--green-bg);color:var(--green)}.tag.amber{background:var(--amber-bg);color:var(--amber)}.tag.red{background:var(--red-bg);color:var(--red)}.tag.gray{background:#eef1f4;color:#667686}.filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:18px 0 22px;background:transparent;border-top:1px solid var(--line);margin-bottom:0}.filters .field{flex:1 1 130px;min-width:0}.filters .field input,.filters .field select{width:100%;min-width:0;height:38px;font-size:13px}.field{display:grid;grid-gap:6px;gap:6px;align-content:start;min-width:0}.field label{color:#4e5662;font-size:13px;font-weight:500}.field input,.field select,.field textarea{background:white;color:var(--ink);border:1px solid #bfc7d2;border-radius:8px;padding:9px 11px;outline:none;max-width:100%;transition:border-color var(--motion-ui),box-shadow var(--motion-ui)}.field input,.field select{height:42px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#2670d1;box-shadow:0 0 0 3px #2670d118}.field textarea{min-height:96px;line-height:1.6;resize:vertical}.field input:disabled,.field input[readonly],.field select:disabled,.field textarea:disabled{background:#f4f5f7;color:#707884;border-color:#e0e4e9;cursor:not-allowed}.field input[readonly]{cursor:default}.field-help{min-height:20px}.select-field{position:relative;min-width:0;width:100%}.field .select-native{position:absolute;width:1px;height:1px;opacity:0;padding:0;border:0;pointer-events:none;overflow:hidden}.select-trigger{width:100%;min-width:0;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:white;color:var(--ink);border:1px solid #bfc7d2;border-radius:9px;padding:9px 11px;outline:none;transition:border-color var(--motion-ui),box-shadow var(--motion-ui),background var(--motion-ui)}.select-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger:hover:not(:disabled){border-color:#8ba8cc;background:#fcfdff}.select-trigger:focus-visible,.select-trigger[data-state=open]{border-color:#2670d1;box-shadow:0 0 0 3px #2670d118}.select-trigger:disabled{background:#f4f5f7;color:#707884;border-color:#e0e4e9;cursor:not-allowed}.select-trigger[aria-invalid=true]{border-color:var(--red)}.select-chevron{display:flex;flex-shrink:0;color:var(--muted);transition:transform .16s var(--ease-out)}.select-trigger[data-state=open] .select-chevron{transform:rotate(180deg)}.select-menu{z-index:90;min-width:max(180px,var(--radix-select-trigger-width));max-width:calc(100vw - 24px);max-height:min(320px,var(--radix-select-content-available-height));overflow:hidden;border:1px solid #dde3ec;border-radius:12px;background:#fff;box-shadow:0 12px 36px #21334d22,0 2px 7px #21334d0a;transform-origin:var(--radix-select-content-transform-origin);animation:select-enter .16s var(--ease-out)}.select-options{padding:5px}.select-option{position:relative;display:flex;align-items:center;min-height:40px;padding:9px 36px 9px 12px;border-radius:7px;outline:none;cursor:pointer;font-size:13px;line-height:1.5;color:var(--ink);-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow-wrap:anywhere}.select-option[data-state=checked]{color:var(--navy);background:#f0f5fd;font-weight:600}.select-option[data-highlighted]{background:#e7f0ff;color:#1758a6}.select-option[data-disabled]{opacity:.45;cursor:not-allowed}.select-check{position:absolute;right:12px;display:flex;color:var(--navy)}.select-scroll{height:24px;display:flex;align-items:center;justify-content:center;background:white;color:var(--muted)}.select-error{display:block;color:var(--red);font-size:12px;margin-top:5px}.filters .select-trigger{min-height:38px;padding-block:7px;font-size:13px}@keyframes select-enter{0%{opacity:0;transform:scale(.97) translateY(-3px)}to{opacity:1;transform:none}}@media(max-width:760px){.filters .select-trigger,.select-option,.select-trigger{min-height:44px}.select-option{font-size:14px}.select-menu{max-height:min(300px,var(--radix-select-content-available-height))}}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px 24px;gap:18px 24px;align-items:start}.form-grid .field input,.form-grid .field select,.form-grid .field textarea{width:100%;min-width:0}.form-grid .full,.form-section{grid-column:1/-1}.form-section{font-size:14px;margin:8px 0 0;padding-bottom:12px;border-bottom:1px solid var(--line);font-weight:600}.form-section:first-child{margin-top:0}.btn[aria-disabled=true]{opacity:.5;cursor:wait}.form-actions{display:flex;justify-content:flex-end;gap:10px}.helper{color:var(--muted);font-size:12px;line-height:1.6}.required:after{content:" *";color:var(--red)}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--line)}.detail-cell{padding:16px;background:white;min-width:0;overflow-wrap:anywhere}.detail-cell .k{color:var(--muted);font-size:12px;margin-bottom:5px}.detail-cell .v{font-weight:500}.notice{padding:12px 16px;line-height:1.7;border:1px solid #edddba;border-radius:8px;background:var(--amber-bg);color:#79551a;font-size:13px}.cycle-notice{margin-bottom:20px}.cycle-notice a{display:inline-flex;align-items:center;gap:6px;margin-left:12px;text-decoration:underline}.success-toast{position:fixed;bottom:24px;left:calc(50% + 112px);transform:translateX(-50%);z-index:45;background:var(--green-bg);border-color:#b7d6c6;color:var(--green);box-shadow:0 6px 24px #20382e18;display:flex;align-items:center;justify-content:space-between;gap:24px;width:max-content;max-width:calc(100vw - 32px);animation:toast-enter var(--motion-ui) var(--ease-out)}.empty{padding:42px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);margin:8px 0 6px}.empty svg{color:var(--green)}.login-error{border:1px solid #efc9c4;background:var(--red-bg);color:var(--red);font-size:13px;padding:12px;border-radius:8px;margin-bottom:16px;line-height:1.6}.modal-backdrop{position:fixed;inset:0;background:rgba(31,39,52,.38);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:50;align-items:center;justify-content:center;padding:24px;animation:fade-in var(--motion-ui) both}.modal,.modal-backdrop{display:flex;overflow:hidden}.modal{width:min(1000px,100%);height:min(820px,calc(100dvh - 48px));flex-direction:column;background:white;border:1px solid #e4e8ee;border-radius:16px;box-shadow:0 24px 80px #19253630;animation:modal-enter var(--motion-enter) var(--ease-out) both}.modal.compact{height:min(460px,calc(100dvh - 48px));width:min(720px,100%)}.modal.medium{height:min(640px,calc(100dvh - 48px));width:min(840px,100%)}.modal>.panel-head{padding:18px 24px;min-height:72px;flex-shrink:0}.modal>.panel-head h3{font-size:18px}.modal>.panel-head>.btn{width:36px;height:36px;padding:0;border-radius:50%;background:#f0f2f5;border-color:transparent;color:var(--muted)}.modal>.panel-body{padding:0;flex:1 1}.modal-form,.modal>.panel-body{min-height:0;display:flex;flex-direction:column}.modal-form{flex:1 1}.modal-scroll{padding:24px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;flex:1 1;min-height:0}.modal-footer{padding:16px 24px;flex-shrink:0;border-top:1px solid var(--line);background:#fafbfc;align-items:center;margin:0}.modal-footer .btn{min-height:40px;padding-inline:18px}.modal>.panel-body>.login-error{margin:12px 24px 0;flex-shrink:0}.modal .notice{font-size:12px}.deferral-meta{max-width:190px;white-space:normal;margin-top:6px}.placement-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:16px;gap:16px}.section-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);grid-gap:16px;gap:16px;margin-top:16px}.distribution-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.distribution-row strong{white-space:nowrap}.pdf-picker,.saved-pdfs{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.pdf-picker h4,.saved-pdfs h4{margin:0 0 14px;font-size:14px;font-weight:600}.pdf-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.pdf-name{flex:1 1;min-width:0;overflow-wrap:anywhere}.pdf-row .field{max-width:220px}.pdf-picker input[type=file]{width:100%;height:auto}.pdf-row select{height:40px}.segmented{display:flex;gap:4px;background:#e8ebef;padding:4px;border-radius:8px}.segmented a{padding:7px 12px;color:var(--muted)}.segmented a.active{background:white;color:var(--ink);border-radius:5px;box-shadow:0 1px 4px #00000015}.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.embed-page{min-height:100vh;padding:16px;background:var(--bg)}.embed-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 auto 12px;max-width:1440px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.embed-header strong{display:block;color:var(--ink);font-size:15px}.embed-header span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.embed-header a{color:var(--navy);font-size:13px;white-space:nowrap}.login-card-wrap{width:min(420px,100%)}.login-card{border:1px solid var(--line);border-radius:16px;background:white;padding:36px;box-shadow:0 10px 40px #2430440a}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.login-brand h1{font-size:20px;margin:0;line-height:1.4}.login-brand p{font-size:12px;color:var(--muted);margin:4px 0 0}.login-card h2{font-size:16px;margin:0 0 20px}.login-card .field{margin-bottom:18px}.login-card .field input{width:100%;min-width:0}.login-card form>.btn{width:100%;min-height:44px;margin-top:6px}.refresh-indicator{position:absolute;top:3px;right:32px;color:var(--muted);font-size:12px;display:flex;gap:6px;align-items:center}.refresh-indicator svg{animation:spin 1s linear infinite}.skeleton{background:#e8ebef;border-radius:8px;animation:skeleton-pulse 1.2s ease-in-out infinite alternate}.skeleton-heading{height:60px;width:240px;margin-bottom:28px}.skeleton-stat{height:150px}.skeleton-content{height:310px;margin:24px 0 12px}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes modal-enter{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes toast-enter{0%{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes skeleton-pulse{to{opacity:.5}}@keyframes spin{to{transform:rotate(1turn)}}@media(max-width:1200px){.launcher-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:640px}.sidebar{width:208px}.brand h1{font-size:14px}.page,.topbar{padding-inline:24px}.grid-4{gap:12px}.stat-card{padding:16px}.cycle-band{gap:16px}.cycle-steps{gap:12px}.cycle-steps a{gap:6px;font-size:12px}.success-toast{left:calc(50% + 104px)}}@media(max-width:1000px){.home-columns,.section-grid{grid-template-columns:1fr;gap:28px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.cycle-band{align-items:flex-start;flex-direction:column}.cycle-steps{width:100%}.placement-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.page-head{align-items:flex-start}.page-head>.actions{justify-content:flex-end}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:static;height:auto;width:100%;padding:18px 16px 8px;background:var(--bg);border:0}.brand{padding:0;gap:10px}.brand h1{font-size:16px}.brand-mark{width:38px;height:38px}.nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:0;gap:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #dce0e8;background:rgba(252,253,255,.93);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.management-nav,.nav-label,.sidebar-footer{display:none}.nav>a{padding:5px 2px;gap:3px;min-height:49px;flex-direction:column;border-radius:8px;font-size:11px;color:#606a78;white-space:nowrap}.nav-icon{width:23px;height:23px;background:transparent;color:inherit;border-radius:0}.nav a.active{color:var(--navy)}.nav a.active,.topbar{background:transparent}.topbar{height:50px;padding:0 16px;border:0;gap:8px}.breadcrumb{font-size:12px;gap:6px}.breadcrumb-divider,.breadcrumb>span:first-child{display:none}.top-user{gap:8px}.user-name{font-size:12px}.avatar{width:28px;height:28px}.top-user .icon-btn{height:36px;width:36px;background:transparent;border:0}.mobile-admin{display:block;position:relative}.mobile-admin summary{height:36px;width:36px;list-style:none;display:grid;place-items:center;border-radius:8px;cursor:pointer}.mobile-admin summary::-webkit-details-marker{display:none}.mobile-admin[open] summary{background:#e8ecf2}.mobile-admin nav{position:absolute;top:42px;right:0;z-index:40;width:180px;background:white;padding:8px;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 28px #24304420}.mobile-admin nav a{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px;font-size:13px}.mobile-admin .nav-icon{color:white;width:26px;height:26px;border-radius:6px}.mobile-admin .tone-teal{background:#147f87}.mobile-admin .tone-pink{background:#b44771}.mobile-admin .tone-gray{background:#626b77}.mobile-admin .tone-indigo{background:#5367b9}.page{padding:16px 16px calc(100px + env(safe-area-inset-bottom))}.page-head{display:block;margin-bottom:24px}.page-head h2{font-size:22px}.page-head>.actions{margin-top:16px;justify-content:flex-start}.page-head .btn{flex:1 0 auto}.launcher-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 8px}.launcher{font-size:12px;gap:8px}.app-icon{width:55px;height:55px;border-radius:15px}.app-library{margin-bottom:24px}.section-title{margin-bottom:16px}.grid-4{gap:10px}.stat-card{padding:14px}.stat-card .value{font-size:26px}.stat-top{margin-bottom:10px}.cycle-band{margin:20px 0 24px;padding:16px 0;gap:16px}.cycle-steps{gap:6px}.cycle-steps a{flex-direction:column;gap:6px;font-size:12px}.cycle-steps li:not(:last-child):after{right:-9px;width:18px;top:14px}.home-columns{gap:24px}.bar-row{grid-template-columns:126px minmax(0,1fr) 36px;gap:8px}.filters{gap:12px 10px}.filters .field{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 10px)}.filters>.btn{min-height:42px}.filters .field input,.filters .field select{height:42px}.btn{min-height:42px}.data-table .btn{min-height:38px;padding:7px 10px}.table-wrap{margin-inline:0}.panel-head{padding:14px 12px;align-items:flex-start}.panel-head span{white-space:normal}.panel-body{padding:16px}.detail-grid,.form-grid{grid-template-columns:1fr}.form-grid{gap:16px}.placement-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.modal-backdrop{padding:8px}.modal,.modal.compact,.modal.medium{height:calc(100dvh - 16px);width:100%;border-radius:12px}.modal>.panel-head{padding:14px 16px;min-height:64px;align-items:center}.modal>.panel-head h3{font-size:17px}.modal-scroll{padding:16px}.modal-footer{padding:12px 16px;gap:8px;flex-wrap:wrap}.modal-footer .btn{padding-inline:12px;min-height:44px}.modal>.panel-body>.login-error{margin-inline:16px}.pdf-row{flex-wrap:wrap}.pdf-name{flex-basis:100%}.pdf-row .field{max-width:100%}.success-toast{left:50%;bottom:calc(86px + env(safe-area-inset-bottom))}.refresh-indicator{top:0;right:16px}.login-page{padding:16px}.login-card{padding:28px 24px}.login-brand h1{font-size:18px}}@media print{.actions,.filters,.launcher-grid,.sidebar,.skip-link,.topbar{display:none!important}.main,.page{padding:0}.panel{border:0}.data-table{min-width:0}}.township-workspace>.grid-4,.township-workspace>.notice{margin-bottom:20px}.township-workspace .filters{align-items:flex-end}.township-wrap{white-space:normal!important;min-width:160px;max-width:300px;overflow-wrap:anywhere}.township-selection{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:16px 0}.township-selection label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.township-candidates input[type=checkbox],.township-selection input[type=checkbox],.township-workspace input[type=checkbox]{width:20px;height:20px;accent-color:var(--navy)}.township-candidates{max-height:42vh;overflow:auto}.township-candidates thead{position:-webkit-sticky;position:sticky;top:0;z-index:1}.township-candidate-filters{padding:16px 24px;margin:0;border-bottom:1px solid var(--line);flex-shrink:0;align-items:flex-end}@media(max-width:760px){.township-candidate-filters{padding:12px 16px}.township-selection{flex-wrap:wrap}}.sidebar .nav{min-height:0;overflow-y:auto}.pdf-preview{padding:0;width:min(1100px,calc(100vw - 48px));height:calc(100dvh - 48px);max-width:none;max-height:none;border:1px solid var(--line);border-radius:12px;background:white;box-shadow:0 20px 70px rgba(0,0,0,.25);overflow:hidden;color:var(--ink)}.pdf-preview[open]{display:flex;flex-direction:column}.pdf-preview::-webkit-backdrop{background:rgba(7,24,40,.7)}.pdf-preview::backdrop{background:rgba(7,24,40,.7)}.pdf-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;padding:14px 20px;background:#f8fafc;border-bottom:1px solid var(--line)}.pdf-preview-head>div{min-width:0}.pdf-preview-head h3{margin:0;font-size:17px;color:var(--navy)}.pdf-preview-head p{margin:4px 0 0;font-size:13px;overflow-wrap:anywhere}.pdf-preview-head>.btn{flex-shrink:0}.pdf-preview-body{position:relative;flex:1 1;min-height:0;background:#525659;overflow:auto;padding:16px;overscroll-behavior:contain}.pdf-preview-body canvas{display:block;margin:0 auto;box-shadow:0 2px 10px rgba(0,0,0,.2)}.pdf-preview-message{position:absolute;inset:0;padding:24px;color:white;text-align:center}.image-preview-body,.pdf-preview-message{display:flex;align-items:center;justify-content:center}.image-preview{display:block;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 2px 10px rgba(0,0,0,.2)}.pdf-preview-footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--line);background:#f8fafc}.pdf-preview-footer .actions{flex-shrink:0}.pdf-preview .btn{min-height:40px}@media(max-width:760px){.pdf-preview{width:calc(100vw - 16px);height:calc(100dvh - 16px);border-radius:8px}.pdf-preview-head{padding:12px;gap:8px}.pdf-preview-footer{padding:12px;flex-wrap:wrap}.pdf-preview-footer .actions{flex-wrap:wrap}.pdf-preview .btn{min-height:44px}}.pdf-preview-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding:8px 12px;flex-shrink:0;border-bottom:1px solid var(--line);background:#f1f4f8}.pdf-preview-toolbar>.actions{margin-left:12px;align-items:center}.pdf-zoom{min-width:46px;text-align:center}.pdf-preview-toolbar .btn:disabled{cursor:default}@media(max-width:760px){.pdf-preview-toolbar{gap:6px}.pdf-preview-toolbar>.actions{margin-left:0;gap:6px}.pdf-preview-toolbar .btn{padding:7px 10px}}.pdf-preview[open]{animation:modal-enter var(--motion-enter) var(--ease-out) both}.pdf-preview::-webkit-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:rgba(31,39,52,.6)}.pdf-preview::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:rgba(31,39,52,.6)}.sensitive-value{gap:5px;white-space:nowrap}.sensitive-toggle,.sensitive-value{display:inline-flex;align-items:center}.sensitive-toggle{gap:3px;padding:1px 4px;border:0;border-radius:4px;background:transparent;color:var(--navy);font-size:11px;cursor:pointer}.sensitive-toggle:hover{background:#e8eef5}.sensitive-toggle:focus-visible{outline:2px solid var(--navy);outline-offset:1px}.sensitive-input{display:flex;align-items:center;gap:6px}.sensitive-input input{flex:1 1;min-width:0}.sensitive-input .sensitive-toggle{min-height:36px;flex-shrink:0}@media(prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}.btn:active,.launcher:active .app-icon,.launcher:hover .app-icon,a.stat-card:active{transform:none}}