:root{--navy:#27446c;--navy-dark:#1b3252;--navy-light:#eaf0f7;--navy-line:#c9d6e6;--gray:#5f6773;--gray-light:#f4f5f7;--border:#d4d8de;--text:#1f2937;--ok:#1f7a4d;--ok-bg:#e7f4ec;--warn:#8a5300;--warn-bg:#fff4dc;--err:#b42318;--err-bg:#fdecea;--radius:8px;--tap:48px;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--content:1120px;color:var(--text);-webkit-text-size-adjust:100%;background:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body{overflow-x:hidden}body{background:#fff;margin:0}h1,h2,h3{color:var(--navy);overflow-wrap:anywhere;line-height:1.25}h1{margin:0 0 var(--s2);font-size:1.5rem}h2{margin:var(--s4) 0 var(--s2);font-size:1.2rem}h3{margin:var(--s3) 0 var(--s1);font-size:1.05rem}p{margin:0 0 var(--s2)}a{color:var(--navy)}.muted{color:var(--gray)}.small{font-size:.9rem}.nowrap{white-space:nowrap}.wrap{overflow-wrap:anywhere}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stack>*+*{margin-top:var(--s2)}.topbar{z-index:30;border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top);background:#fff;position:sticky;top:0}.topbar .inner{max-width:var(--content);padding:var(--s1) var(--s2);align-items:center;gap:var(--s2);min-width:0;margin:0 auto;display:flex}.topbar .logo img{width:auto;height:32px;display:block}.topbar .logo,.topbar select,.topbar button{flex:none}.topbar .logo{flex-shrink:1;min-width:0}.topbar .logo img{object-fit:contain;object-position:left center;max-width:100%}.topbar .spacer{flex:1}.topbar .user{color:var(--gray);text-align:right;font-size:.88rem;line-height:1.3}.mainnav{border-top:1px solid var(--gray-light)}.mainnav .inner{max-width:var(--content);padding:0 var(--s2);flex-wrap:wrap;gap:2px;margin:0 auto;display:flex}.mainnav a{min-height:46px;color:var(--text);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;padding:0 14px;font-weight:500;text-decoration:none;display:inline-flex}.mainnav a:hover{color:var(--navy);background:var(--gray-light)}.mainnav a[aria-current=page]{color:var(--navy);border-bottom-color:var(--navy);font-weight:650}.menu-toggle,.mobile-menu{display:none}.banner{padding:var(--s1) var(--s2);font-size:.92rem}.banner .inner{max-width:var(--content);margin:0 auto}.banner.local{background:var(--warn-bg);color:var(--warn)}.banner.offline{background:var(--err-bg);color:var(--err);font-weight:600}main{max-width:var(--content);padding:var(--s3) var(--s2) 140px;min-width:0;margin:0 auto}.page-head{justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s2);flex-wrap:wrap;display:flex}.page-head h1{margin:0}.back{min-height:44px;margin-bottom:var(--s1);align-items:center;display:inline-flex}button,.btn{min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--border);color:var(--navy);font:inherit;cursor:pointer;text-align:center;touch-action:manipulation;background:#fff;justify-content:center;align-items:center;gap:6px;max-width:100%;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.btn:hover{border-color:var(--navy)}button.primary,.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}button.primary:hover:not(:disabled),.btn.primary:hover{background:var(--navy-dark)}button.danger,.btn.danger{color:var(--err);border-color:#e7b4ae}button.danger.filled{background:var(--err);color:#fff;border-color:var(--err)}button.link{min-height:44px;color:var(--navy);background:0 0;border:0;padding:0 4px;font-weight:500;text-decoration:underline}button.small,.btn.small{min-height:44px;padding:0 14px;font-size:.94rem}button:disabled{opacity:.5;cursor:not-allowed}.actions{gap:var(--s1) var(--s2);margin:var(--s2) 0;flex-wrap:wrap;align-items:center;display:flex}.actions.end{justify-content:flex-end}:focus-visible{outline-offset:2px;outline:3px solid #8fb0d9}.form-grid{gap:var(--s2);grid-template-columns:1fr;display:grid}.form-grid .full{grid-column:1/-1}label.field,.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>.label{color:var(--text);font-size:.94rem;font-weight:600}.field>.label .req{color:var(--err);margin-left:2px}.field>.label .opt{color:var(--gray);margin-left:4px;font-weight:400}.field .hint{color:var(--gray);font-size:.88rem}input,select,textarea{font:inherit;color:var(--text);min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%;min-width:0;padding:10px 12px;font-size:16px}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--navy);flex:none;margin:0;padding:0}textarea{resize:vertical;min-height:120px;line-height:1.45}input:focus,select:focus,textarea:focus{outline-offset:0;border-color:var(--navy);outline:3px solid #8fb0d9}.field.has-error input,.field.has-error select,.field.has-error textarea,input.invalid{border-color:var(--err);border-width:2px}.field-error{color:var(--err);gap:6px;font-size:.9rem;font-weight:500;display:flex}.field-error:before{content:"!";background:var(--err);color:#fff;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;margin-top:2px;font-size:.75rem;font-weight:700;display:inline-grid}.counter{color:var(--gray);text-align:right;font-size:.86rem}.counter.near{color:var(--warn)}.counter.over{color:var(--err);font-weight:600}.duration{gap:var(--s1);align-items:center;display:flex}.duration input{flex:none;width:5em}.with-suffix{position:relative}.with-suffix input{padding-right:2.6em}.with-suffix .suffix{color:var(--gray);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.legend{color:var(--gray);margin:0 0 var(--s2);font-size:.88rem}.legend .req{color:var(--err)}.choices{gap:var(--s1);border:0;min-width:0;margin:0;padding:0;display:grid}.choices legend{margin-bottom:6px;padding:0;font-size:.94rem;font-weight:600}.choices.inline{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.choice{min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.choice:has(input:checked){border-color:var(--navy);background:var(--navy-light)}.choice input{margin-top:1px}.choice>span{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;min-width:0}.choice .desc{color:var(--gray);font-size:.88rem;font-weight:400;display:block}.fieldset-error .choice{border-color:var(--err)}.choices>.field-error{grid-column:1/-1}.tabs{border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;width:fit-content;max-width:100%;display:flex;overflow:hidden}.tabs button{border:0;border-right:1px solid var(--border);color:var(--text);white-space:nowrap;background:#fff;border-radius:0;min-height:44px;padding:0 14px;font-weight:500}.tabs button:last-child{border-right:0}.tabs button[aria-pressed=true]{background:var(--navy);color:#fff;font-weight:600}.tabs .count{font-variant-numeric:tabular-nums;opacity:.85}.card{border:1px solid var(--border);border-radius:var(--radius);padding:var(--s2);background:#fff;min-width:0}.card+.card{margin-top:var(--s2)}.card.subtle{background:var(--gray-light);border-color:var(--gray-light)}.card h3:first-child,.card h2:first-child{margin-top:0}.cols{gap:var(--s2);grid-template-columns:1fr;display:grid}.list{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.list>*+*{border-top:1px solid var(--border)}.list-row{gap:4px var(--s2);padding:14px var(--s2);color:inherit;background:#fff;grid-template-columns:1fr;min-width:0;text-decoration:none;display:grid}a.list-row:hover,button.list-row:hover{background:var(--gray-light)}button.list-row{text-align:left;width:100%;color:var(--text);border:0;border-radius:0;justify-content:stretch;min-height:0;font-weight:400}.list-row .title{overflow-wrap:anywhere;font-weight:650}.list-row .meta{color:var(--gray);overflow-wrap:anywhere;font-size:.9rem}.list-row .side{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.order-num{color:var(--navy);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.kv{gap:6px var(--s2);grid-template-columns:minmax(110px,max-content) 1fr;margin:0;display:grid}.kv dt{color:var(--gray)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.table-wrap{overflow-x:auto}table.simple{border-collapse:collapse;width:100%;font-size:.94rem}table.simple th,table.simple td{text-align:left;border-bottom:1px solid var(--gray-light);vertical-align:top;padding:8px}.repeat{border:1px solid var(--border);border-radius:var(--radius);padding:var(--s2);margin:0 0 var(--s2);background:#fff}.repeat .head{justify-content:space-between;align-items:center;gap:var(--s1);margin-bottom:var(--s2);color:var(--navy);font-weight:650;display:flex}.picker-list{border:1px solid var(--border);border-radius:var(--radius);max-height:320px;margin-top:var(--s1);overflow:auto}.picker-list button{text-align:left;border:0;border-bottom:1px solid var(--gray-light);width:100%;color:var(--text);min-height:var(--tap);border-radius:0;padding:12px 14px;font-weight:400;display:block}.picker-list button:hover,.picker-list button:focus-visible{background:var(--navy-light)}.picker-list .group{color:var(--gray);text-transform:uppercase;letter-spacing:.04em;background:var(--gray-light);padding:8px 14px 4px;font-size:.8rem;font-weight:700}.task-list{margin:0 0 var(--s2);border:1px solid var(--border);border-radius:var(--radius);padding:0;list-style:none}.task-list li{align-items:center;gap:var(--s1);min-height:var(--tap);padding:4px 4px 4px 14px;display:flex}.task-list li+li{border-top:1px solid var(--gray-light)}.task-list li span{overflow-wrap:anywhere;flex:1}.totals{text-align:right;font-weight:600}.sum-grid{gap:4px var(--s2);grid-template-columns:1fr auto;display:grid}.badge{background:var(--gray-light);color:var(--text);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.82rem;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.err{background:var(--err-bg);color:var(--err)}.badge.info{background:var(--navy-light);color:var(--navy)}.notice{padding:12px var(--s2);border-radius:var(--radius);margin:var(--s2) 0;overflow-wrap:anywhere}.notice.ok{background:var(--ok-bg);color:var(--ok)}.notice.warn{background:var(--warn-bg);color:var(--warn)}.notice.err{background:var(--err-bg);color:var(--err)}.notice.info{background:var(--navy-light);color:var(--navy)}.notice>:last-child{margin-bottom:0}.issues{margin:6px 0 0;padding-left:1.2em}.issues li{margin:2px 0}.issues button{min-height:32px;color:var(--err);text-align:left;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline}.stepper{margin:0 0 var(--s3);counter-reset:step;padding:0;list-style:none;display:none}.stepper li{flex:1;min-width:0}.stepper button{border:0;border-top:4px solid var(--border);width:100%;min-height:64px;color:var(--gray);background:0 0;border-radius:0;flex-direction:column;gap:4px;padding:6px 4px;font-size:.86rem;font-weight:500;line-height:1.2}.stepper .n{border:2px solid;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.85rem;font-weight:700;display:inline-grid}.stepper .done button{border-top-color:var(--navy-line);color:var(--navy)}.stepper .done .n{background:var(--navy-light)}.stepper [aria-current=step]{border-top-color:var(--navy);color:var(--navy);font-weight:700}.stepper [aria-current=step] .n{background:var(--navy);color:#fff;border-color:var(--navy)}.stepper .error button{border-top-color:var(--err);color:var(--err)}.step-mobile{margin:0 0 var(--s3)}.step-mobile .label{color:var(--navy);font-weight:650}.progress{background:var(--gray-light);border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.progress>span{background:var(--navy);height:100%;display:block}.step-mobile details summary{min-height:44px;color:var(--navy);cursor:pointer;align-items:center;font-weight:500;display:flex}.step-mobile details ol{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none}.step-mobile details li+li{border-top:1px solid var(--gray-light)}.step-mobile details button{width:100%;color:var(--text);border:0;border-radius:0;justify-content:flex-start;font-weight:500}.step-mobile details button[aria-current=step]{color:var(--navy);background:var(--navy-light);font-weight:700}.step-mobile details .error button{color:var(--err)}.actionbar{z-index:20;margin:var(--s4) calc(-1 * var(--s2)) 0;border-top:1px solid var(--border);padding:10px var(--s2);padding-bottom:max(10px, env(safe-area-inset-bottom));background:#fff;position:sticky;bottom:0}.actionbar .row{gap:var(--s1);justify-content:space-between;align-items:center;display:flex}.actionbar .state{color:var(--gray);gap:var(--s1);flex-wrap:wrap;align-items:center;margin-top:6px;font-size:.86rem;display:flex}.actionbar .state strong{color:var(--err)}.sig-box{border:2px dashed var(--navy-line);border-radius:var(--radius);touch-action:none;background:#fff;position:relative}.sig-box canvas{touch-action:none;width:100%;height:180px;display:block}.sig-box .baseline{border-bottom:1px solid var(--border);pointer-events:none;position:absolute;bottom:36px;left:16px;right:16px}.sig-box .placeholder{color:var(--gray);pointer-events:none;font-size:.85rem;position:absolute;bottom:10px;left:16px}.sig-state{align-items:center;gap:var(--s1);margin-top:var(--s1);flex-wrap:wrap;justify-content:space-between;display:flex}.pdf-frame{border:1px solid var(--border);border-radius:var(--radius);background:var(--gray-light);width:100%;height:70vh}.dialog-backdrop{z-index:50;padding:var(--s2);background:#0f192873;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:12px;flex-direction:column;width:min(640px,100%);max-height:calc(100dvh - 32px);display:flex;overflow:hidden}.dialog.wide{width:min(960px,100%)}.dialog header{padding:var(--s2) var(--s2) 0;justify-content:space-between;align-items:center;gap:var(--s1);display:flex}.dialog header h2{margin:0;font-size:1.15rem}.dialog .body{padding:var(--s2);flex:1;overflow:auto}.dialog footer{padding:12px var(--s2);padding-bottom:max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--border);gap:var(--s1);flex-wrap:wrap;justify-content:flex-end;display:flex}.search-row{gap:var(--s2);margin-bottom:var(--s2);grid-template-columns:1fr;align-items:end;display:grid}.search-row .btn{width:100%}.filter-row{gap:var(--s2);margin-bottom:var(--s3);grid-template-columns:1fr;align-items:end;display:grid}.status-tabs{display:none}.cal-layout{gap:var(--s3);grid-template-columns:1fr;display:grid}.cal-grid{display:none}.cal-head{gap:var(--s1);margin-bottom:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.cal-head .month{color:var(--navy);text-align:center;min-width:150px;font-weight:700}.cal-grid .dow{color:var(--gray);padding:4px 6px;font-size:.8rem;font-weight:600}.cal-day{border:1px solid var(--gray-light);min-height:92px;color:var(--text);text-align:left;background:#fff;border-radius:6px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:3px;padding:6px;font-weight:400;display:flex}.cal-day.other{color:#a0a6ae;background:#fafbfc}.cal-day.today .d{background:var(--navy);color:#fff;border-radius:50%}.cal-day[aria-pressed=true]{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}.cal-day .d{place-items:center;width:24px;height:24px;font-size:.85rem;font-weight:600;display:inline-grid}.cal-day .ev{background:var(--navy-light);color:var(--navy);white-space:nowrap;text-overflow:ellipsis;border-radius:3px;padding:1px 4px;font-size:.75rem;line-height:1.25;overflow:hidden}.cal-day .more{color:var(--gray);font-size:.75rem}.agenda-day{margin-top:var(--s3)}.cal-side-day{display:none}.agenda-day h3{margin:0 0 var(--s1);font-size:1rem}@media (width>=700px){.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}.cols.two{grid-template-columns:1fr 1fr}.list-row.order{grid-template-columns:72px 1fr auto;align-items:center}.list-row.order .flags{grid-column:2/4}.list-row.two{grid-template-columns:1fr auto;align-items:center}.search-row{grid-template-columns:minmax(0,1fr) auto}.search-row .btn{width:auto}.filter-row{grid-template-columns:1fr 1fr}h1{font-size:1.65rem}}@media (width>=1000px){.form-grid.four{grid-template-columns:repeat(4,1fr)}.stepper{display:flex}.filter-row{grid-template-columns:auto minmax(220px,280px);justify-content:space-between}.status-tabs{display:block}.filter-row .status-select,.step-mobile{display:none}.cal-layout{grid-template-columns:minmax(0,1fr) 340px}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.agenda-mobile-only{display:none}.cal-side-day{display:block}}@media (width<=999px){.mainnav{display:none}.menu-toggle{display:inline-flex}.mobile-menu[data-open=true]{border-top:1px solid var(--border);background:#fff;display:block}.mobile-menu nav{max-width:var(--content);padding:var(--s1) var(--s2) var(--s2);gap:2px;margin:0 auto;display:grid}.mobile-menu a{min-height:var(--tap);color:var(--text);border-radius:6px;align-items:center;padding:0 12px;font-weight:500;text-decoration:none;display:flex}.mobile-menu a[aria-current=page]{background:var(--navy-light);color:var(--navy);font-weight:650}}@media (width<=699px){main{padding-top:var(--s2)}.topbar .user{display:none}.topbar .inner{gap:var(--s1)}.topbar .logo img{height:28px}.topbar select{padding:8px}.page-head>.btn,.page-head>button{width:100%}.actions.stack-mobile>*{flex:100%}.dialog-backdrop{align-items:stretch;padding:0}.dialog,.dialog.wide{border-radius:0;width:100%;height:100dvh;max-height:none}body:has(:is(input:not([type=checkbox]):not([type=radio]),textarea,select):focus) .actionbar{position:static}.kv{grid-template-columns:1fr;gap:0}.kv dd{margin-bottom:var(--s1)}}@media print{.topbar,.actionbar,.banner,.mobile-menu{display:none}}
