:root{--bg:#f4f6f5;--bg-deep:#edf1ef;--panel:#fff;--text:#23352e;--muted:#586b62;--accent:#096e5e;--accent-strong:#075347;--accent-soft:#edf5f0;--border:#cddbd3;--line:#dce5df;--shadow:none;--radius:6px;--font-display:"Noto Serif SC", "Songti SC", STSong, Georgia, serif;--font-data:Cambria, "Times New Roman", "Noto Serif SC", serif;font-family:Manrope,Noto Sans SC,PingFang SC,sans-serif}*{box-sizing:border-box;letter-spacing:0}html,body{min-height:100vh;margin:0}body{background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{border:0}a{color:inherit}:is(button,a,input,select,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.inform-route{place-items:center;min-height:100vh;padding:20px;display:grid}.inform-route>.inform-card{width:min(100%,520px)}
.app-modal{z-index:50;background:#041a1775;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.app-modal-dialog{outline:none;width:min(100%,520px);max-height:calc(100vh - 36px);overflow:auto}.app-modal-lg{width:min(100%,760px)}.app-modal-content{background:#fff;border:1px solid #096e5e2e;border-radius:6px;box-shadow:0 16px 44px #032a242e}@media (max-width:640px){.app-modal{padding:10px}.app-modal-content{border-radius:6px}}
:root{--inform-accent:#096e5e;--inform-accent-strong:#075347;--inform-line:#d7e9e5;--inform-text:#173833;--inform-muted:#5d7a74;--inform-soft:#f5faf8}.inform-card{background:#fff;border:0;border-radius:6px;padding:22px}.inform-header{border-bottom:2px solid var(--inform-accent);margin-bottom:14px;padding-bottom:14px}.inform-title{color:var(--inform-accent-strong);font-size:22px;font-family:var(--font-display);margin:0;font-weight:600}.inform-content{height:clamp(180px,32dvh,260px);color:var(--inform-text);border:0;border-left:3px solid var(--inform-accent);background:#fafcfb;border-radius:0;margin:0;padding:12px 14px;font-size:14px;line-height:1.8;overflow:hidden auto}.inform-content p{margin:0 0 10px}.inform-content p:last-child{margin-bottom:0}.inform-content strong{color:var(--inform-accent-strong)}.inform-intro-actions{gap:10px;margin-top:14px;display:grid}.inform-row-btn{border:1px solid var(--inform-line);width:100%;min-height:48px;color:var(--inform-text);cursor:pointer;background:#fff;border-radius:4px;justify-content:space-between;align-items:center;padding:10px 12px;transition:transform .15s,box-shadow .15s;display:flex}.inform-row-btn:hover{background:var(--inform-soft);border-color:var(--inform-accent)}.inform-row-left{align-items:center;gap:10px;font-weight:700;display:inline-flex}.inform-row-left input[type=checkbox]{width:16px;height:16px;accent-color:var(--inform-accent)}.inform-status{color:var(--inform-muted);font-size:13px}.inform-status.agreed{color:var(--inform-accent-strong);font-weight:700}.inform-start-btn{color:#889692;cursor:not-allowed;background:#e2e7e5;border:1px solid #d0d9d7;border-radius:4px;height:44px;font-weight:800;transition:all .18s}.inform-start-btn.enabled{background:var(--inform-accent);border-color:var(--inform-accent);color:#fff;cursor:pointer}.inform-start-btn.enabled:hover{background:var(--inform-accent-strong)}.inform-decision-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.decision-btn{border:1px solid var(--inform-line);cursor:pointer;border-radius:4px;height:42px;font-weight:700}.decision-btn.accept{color:#fff;background:#0a7b69;border-color:#0a7b69}.decision-btn.reject{color:var(--inform-accent-strong);background:#f7faf9}@media (max-width:640px){.inform-title{font-size:20px}.inform-content{height:clamp(160px,30dvh,220px)}.inform-card{padding:18px}}
.stay-review{border-top:1px solid var(--line);overflow-wrap:anywhere;min-width:0;margin-top:16px;padding-block:12px;scroll-margin-top:24px;font-size:14px}.stay-review summary{cursor:pointer;line-height:1.7}.stay-review summary>span{margin-right:12px}.review-attention{color:#9a410c}.review-handled,.review-auto-handled{color:#666}.review-auto-handled{margin-top:16px;line-height:1.7}.review-auto-handled h3{margin:0;font-size:14px;font-weight:600}.review-auto-handled ul{margin:6px 0 0;padding-left:20px}.review-result-status{gap:4px;margin-top:8px;font-size:13px;font-weight:400;display:grid}.review-status-link{width:fit-content;font:inherit;text-align:left;text-underline-offset:3px;cursor:pointer;background:0 0;padding:3px 0;text-decoration:underline;display:block}.review-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px 18px;margin-top:12px;display:flex}.review-tabs button{color:var(--muted);cursor:pointer;background:0 0;border-bottom:2px solid #0000;padding:10px 0;font-size:13px}.review-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent-strong);font-weight:600}.review-tabs button>span{font-variant-numeric:tabular-nums;margin-left:3px;font-size:12px}.review-empty{color:var(--muted);padding-block:12px;font-size:13px}.review-count,.review-totals{color:var(--muted)}.review-totals{margin-top:12px}.review-warnings{color:#9a410c;padding-left:20px;line-height:1.7}.review-trips{margin:8px 0 0;padding:0;list-style:none}.review-trips>li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-block:12px;display:flex}.review-trip-copy{gap:5px;min-width:0;display:grid}.review-reason{color:#9a410c;font-size:13px}.review-decision{flex-shrink:0;gap:5px;font-size:13px;display:grid}.review-decision select{border:1px solid var(--line);max-width:100%;min-height:40px;color:var(--ink,#20352f);font:inherit;background:#fff;border-radius:6px;padding:6px 10px}@media (max-width:600px){.review-trips>li{flex-direction:column;align-items:stretch;gap:10px}.review-decision{width:100%}.review-tabs{gap:4px 12px}.review-tabs button{font-size:12px}}
.page{gap:20px;max-width:1120px;margin:0 auto;padding:54px 20px 72px;display:grid}.page>*{animation:none}.hero{text-align:left}.hero-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.hero h1{font-size:40px;line-height:1.25;font-family:var(--font-display);color:var(--accent-strong);margin:0 0 10px;font-weight:600}.hero p{color:var(--muted);max-width:760px;margin:0;font-size:16px}.ios-promo[hidden]{display:none}.ios-promo{border:1px solid var(--border);box-shadow:none;background:#f8fbf9;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-top:18px;padding:12px 14px;display:grid}.ios-app-logo{object-fit:cover;width:56px;height:56px;box-shadow:none;border:1px solid #b8d8d0;border-radius:14px}.ios-title{color:#12473e;font-size:15px;font-weight:800}.ios-sub{color:#53716a;margin-top:2px;font-size:13px}.ios-store-link{border-radius:10px;justify-content:center;align-items:center;transition:transform .16s;display:inline-flex}.ios-store-link:hover{opacity:.85}.ios-store-badge{width:120px;height:auto;display:block}.page-link{color:#fff;background:var(--accent);min-height:34px;box-shadow:none;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}.page-link:hover,.page-link:focus{color:#fff;background:var(--accent-strong);box-shadow:none}.panel{background:var(--panel);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);border:1px solid var(--border);padding:20px 22px}.calendar-loading{color:var(--accent-strong);text-align:center;padding:28px;font-size:14px;font-weight:700}.results-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.results-toolbar h2{font-size:20px;font-family:var(--font-display);color:var(--accent-strong);margin:0;font-weight:600}.results-toolbar h2>span{color:var(--muted);margin-left:8px;font-size:12px;font-weight:400}.zero-filter{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.zero-filter input{accent-color:var(--accent);width:16px;height:16px}.term-filter input:focus-visible+.term-chip{outline:2px solid var(--accent);outline-offset:3px}.table-wrap .numeric{text-align:right;font-variant-numeric:tabular-nums}.table-wrap td.numeric{font-family:var(--font-data);color:#075347;font-variant-numeric:lining-nums tabular-nums;font-size:15px;font-weight:500}.table-wrap .summary-row td:not(.name-cell){background:#edf5f0;border-bottom:2px solid #a9c9ba}.table-wrap .summary-row td.numeric{font-size:15px;font-weight:700}.table-wrap td.numeric.is-zero{color:#667870;font-size:15px;font-weight:400}.table-wrap .name-cell{font-weight:400}.person-heading{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.name-text{font-weight:700}.pdf-metadata{color:var(--muted);margin-top:6px;font-size:11px;font-weight:400;display:inline-block}.name-cell .review-result-status{font-size:12px}.text-action{color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;padding:6px 0;font-size:13px;text-decoration:underline}.text-action:disabled{opacity:.5;cursor:wait}.table-empty{text-align:center;color:var(--muted);padding-block:24px}.upload-manifest{margin-top:14px;font-size:13px}.upload-manifest summary{cursor:pointer;color:var(--accent-strong);padding-block:6px}.upload-manifest summary>span{color:var(--muted);margin-left:6px}.upload-manifest ul{max-height:150px;margin:0;padding:0;list-style:none;overflow:auto}.upload-manifest li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:8px 0;display:flex}.upload-file-copy{flex:1;gap:4px;min-width:0;display:grid}.upload-file-name,.upload-file-error{overflow-wrap:anywhere}.upload-file-error{color:#9a410c;font-size:12px}.upload-file-status{color:var(--muted);flex-shrink:0;font-size:12px}.upload-file-status.success{color:var(--accent)}.upload-file-status.failed,.upload-file-status.empty{color:#9a410c}@media (prefers-reduced-motion:reduce){.page>*{animation:none}.page-link,.dropzone,.term-chip{transition:none}}.dropzone{text-align:center;cursor:pointer;background:#f5faf7;border:1px dashed #7aab97;border-radius:6px;padding:28px 24px;transition:border-color .2s,background .2s;position:relative}.dropzone.dragover{border-color:var(--accent);box-shadow:none;background:#e5f2eb}.dropzone input[type=file]{opacity:0;pointer-events:none;position:absolute;inset:0}.dz-title{color:var(--accent-strong);font-size:19px;font-weight:700}.dz-sub{color:var(--muted);margin-top:6px;font-size:14px}.status{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.pdf-import-errors{color:#9a410c;overflow-wrap:anywhere;margin:12px 0 0;padding-left:20px;font-size:14px;line-height:1.7}.pill{border:1px solid var(--border);color:#355852;background:#f5f8f6;border-radius:4px;padding:7px 12px;font-size:13px}.term-filters{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.term-filter{align-items:center;display:inline-flex;position:relative}.term-filter input{opacity:0;pointer-events:none;position:absolute}.term-chip{color:var(--muted);cursor:pointer;background:#f5faf8;border:1px solid #cfe1dc;border-radius:4px;padding:9px 14px;font-size:13px;font-weight:600;transition:all .2s,transform .12s}.term-filter input:checked+.term-chip{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:none}.term-chip:hover{border-color:#a8cfc6}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:4px;overflow-x:auto}.stay-stats-table{table-layout:fixed;min-width:800px}.stay-stats-table .person-column{width:180px}.stay-stats-table .scope-column{width:120px}.stay-stats-table .scope-cell{white-space:nowrap}.stay-stats-table .name-cell{min-width:0}.stay-stats-table .name-text{white-space:normal;overflow-wrap:anywhere;max-width:100%}.stay-stats-table .name-id-card{flex-wrap:wrap;gap:4px}table{border-collapse:collapse;width:100%;min-width:740px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 11px;font-size:14px}th{color:#fff;letter-spacing:0;z-index:1;background:#096e5e;font-weight:600;position:sticky;top:0}tbody tr:nth-child(odd){background:#fbfefd}tbody tr:hover td{background:#f3faf8}.name-cell{vertical-align:top;color:#0f4a40;background:#f5f9f6;min-width:148px;font-weight:800}.name-text{text-overflow:ellipsis;white-space:nowrap;max-width:220px;line-height:1.4;display:block;overflow:hidden}.name-id-card{color:#2a7266;letter-spacing:0;align-items:center;gap:6px;margin-top:4px;font-size:12px;line-height:1.3;display:flex}.name-id-card-value{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.id-toggle-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:inline-flex}.id-toggle-btn:hover{background:#0f4a4014}.id-toggle-icon{object-fit:contain;width:16px;height:16px}.name-meta-pill{border-radius:999px;margin-top:8px;padding:2px 10px;font-size:11px;font-weight:700;line-height:1.6;display:inline-block}.name-meta-pill.official{color:#136f43;background:#e8f8ef;border:1px solid #bdeccf}.name-meta-pill.unofficial{color:#a7212f;background:#fdecee;border:1px solid #f8c3ca}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.page{gap:14px;padding:30px 14px 48px}.hero h1{font-size:29px}.ios-promo{grid-template-columns:1fr;gap:10px;padding:12px}.ios-store-badge{width:142px}.panel{padding:14px}.dropzone{padding:20px 14px}.term-filters{gap:8px}.term-chip{padding:8px 11px;font-size:12px}}
:root{--mobile-bg:#eef6f4;--mobile-bg-deep:#deede9;--mobile-panel:#fff;--mobile-line:#d4e6e1;--mobile-text:#12342f;--mobile-muted:#58756f;--mobile-accent:#0b725f;--mobile-accent-strong:#085446;--mobile-soft:#edf8f5}.mobile-page{gap:12px;width:min(100%,560px);margin:0 auto;padding:18px 12px 26px;display:grid}.mobile-hero h1{font-size:24px;line-height:1.35;font-family:var(--font-display);color:var(--accent-strong);margin:0;font-weight:600}.mobile-hero p{color:var(--mobile-muted);margin:8px 0 0;font-size:14px;line-height:1.5}.mobile-panel{background:var(--mobile-panel);border:1px solid var(--border);box-shadow:none;border-radius:6px;padding:12px}.mobile-dropzone{text-align:center;cursor:pointer;background:#f5faf7;border:1px dashed #7aab97;border-radius:6px;padding:18px 12px;display:block;position:relative}.mobile-dropzone input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.status-wrap{gap:8px;margin-top:10px;display:grid}.status-pill{border:1px solid var(--mobile-line);color:#315852;background:#f4faf8;border-radius:4px;padding:7px 11px;font-size:12px}.result-cards{gap:10px;display:grid}.result-card{background:#fff;border:0;border-radius:0;padding:0}.result-card h2{font-size:19px;font-family:var(--font-display);color:var(--mobile-accent-strong);overflow-wrap:anywhere;margin:0}.result-card p{color:var(--mobile-muted);margin:8px 0 0;font-size:13px}.person-meta{color:#2e6660;word-break:break-all;margin-top:6px;font-size:12px}.metrics-by-term{gap:12px;margin-top:12px;display:grid}.metric-section{border:0;border-top:2px solid var(--accent);background:0 0;border-radius:0;padding:12px 0}.metric-section h3{justify-content:space-between;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:800;display:flex}.metric-title{color:var(--mobile-accent-strong)}.metric-total{color:var(--mobile-accent-strong);font-size:28px;font-family:var(--font-data);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}.metric-term-list{gap:0;margin:8px 0 0;padding:0;list-style:none;display:grid}.metric-term-row{background:#fff;border:0;border-bottom:1px solid #dceae7;border-radius:0;justify-content:space-between;align-items:center;gap:10px;padding:9px 4px;font-size:13px;display:flex}.metric-term-row .term{color:var(--mobile-muted)}.metric-term-row .value{color:var(--mobile-accent-strong);font-size:20px;font-weight:800;font-family:var(--font-data);font-variant-numeric:lining-nums tabular-nums}.metric-term-row .value.is-zero{color:#667870;font-size:14px;font-weight:400}.mobile-zero-filter{margin-top:12px}.badge{border-radius:999px;margin-top:8px;padding:2px 9px;font-size:11px;font-weight:700;display:inline-flex}.badge.official{color:#146f44;background:#e8f8ef;border:1px solid #bdeccb}.badge.unofficial{color:#aa2431;background:#fdecef;border:1px solid #f6c5cb}.result-card.empty{text-align:center;background:#fbfefd}
