:root{--ink:#17211f;--muted:#687773;--paper:#fff;--canvas:#f3f6f5;--line:#d9e2df;--brand:#075f57;--brand2:#0b786d;--brand-soft:#e6f4f1;--blue:#175cd3;--blue-soft:#eaf2ff;--amber:#a74b0b;--amber-soft:#fff2df;--green:#027a48;--green-soft:#e8f7ef;--red:#b42318;--shadow:0 12px 35px rgba(18,45,40,.08)}
*{box-sizing:border-box}html,body{margin:0;background:var(--canvas);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-tap-highlight-color:transparent}body{min-height:100vh}.app{max-width:800px;margin:0 auto;padding:18px 14px 116px}.header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin:2px 2px 16px}.eyebrow,.step-label{font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--brand2)}h1{font-size:25px;line-height:1.18;margin:5px 0 4px;letter-spacing:-.02em}h2{font-size:18px;margin:4px 0 10px}.subtitle{font-size:13px;color:var(--muted);line-height:1.45}.status-pill,.count-pill,.today-chip{border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850;white-space:nowrap}.status-pill{background:var(--green-soft);color:var(--green)}.status-pill.offline{background:var(--amber-soft);color:var(--amber)}.count-pill,.today-chip{background:#eef3f2;color:#4d625d}.card{background:var(--paper);border:1px solid #e6edeb;border-radius:18px;padding:16px;box-shadow:var(--shadow);margin-bottom:13px}.card.compact{padding:14px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.section-title{font-weight:850;margin-bottom:8px}.muted{font-size:13px;color:var(--muted);line-height:1.6}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.device-type{min-height:48px;border:1px solid var(--line);border-radius:13px;background:#fff;font-size:16px;font-weight:850;color:#43534f}.device-type.active{border:2px solid var(--brand);background:var(--brand-soft);color:var(--brand);padding:0}.field-label,label{display:block;font-size:13px;font-weight:750;color:#42534f}.text-input,select,textarea{width:100%;margin-top:6px;border:1px solid #cbd7d3;border-radius:12px;background:#fff;padding:12px;font:inherit;color:var(--ink);min-height:46px}.text-input:focus,select:focus,textarea:focus{outline:3px solid rgba(11,120,109,.14);border-color:var(--brand2)}.privacy-note{background:#eff7ff;border-left:4px solid #4085df;border-radius:10px;padding:10px 12px;margin:9px 0;color:#25486f;font-size:12px;line-height:1.55}.primary,.secondary,.link-button{width:100%;min-height:48px;border-radius:13px;font-size:15px;font-weight:850;cursor:pointer}.primary{border:0;background:var(--brand);color:#fff;padding:13px;margin-top:10px}.primary:active{transform:scale(.995)}.primary:disabled{opacity:.45}.secondary{border:1px solid #c9d6d2;background:#fff;color:#324640;padding:12px;margin-top:9px}.link-button{border:0;background:transparent;color:var(--brand2);margin-top:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:13px}.stat{border:1px solid #e0e8e5;background:#fff;border-radius:14px;min-height:70px;padding:9px 6px;color:var(--ink)}.stat b{display:block;font-size:22px}.stat span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.stat.active{background:var(--brand);border-color:var(--brand);color:#fff}.stat.active span{color:#d7f0eb}.queue-card{border:1px solid var(--line);border-radius:15px;padding:13px;margin-top:10px;background:#fff}.queue-card.running{border-left:5px solid var(--blue)}.queue-card.waiting{border-left:5px solid var(--amber)}.queue-card.done{border-left:5px solid var(--green)}.queue-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.record-id{font-size:18px;font-weight:900}.tag{font-size:12px;color:var(--muted);margin-top:2px}.badge{border-radius:999px;padding:5px 8px;font-size:11px;font-weight:850}.waiting .badge{background:var(--amber-soft);color:var(--amber)}.running .badge{background:var(--blue-soft);color:var(--blue)}.done .badge{background:var(--green-soft);color:var(--green)}.queue-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:10px;font-size:13px;color:#52625e}.elapsed{margin-top:9px;font-size:13px;font-weight:850;color:#70401f}.action-row{display:flex;gap:8px;margin-top:10px}.action{flex:1;min-height:44px;border:0;border-radius:11px;padding:10px;font-weight:850;font-size:14px}.action.start{background:var(--blue);color:#fff}.action.finish{background:var(--green);color:#fff}.action.correct{background:#f2f4f7;color:#344054}.exception-select{margin-top:9px}.empty{border:1px dashed #c9d6d2;border-radius:13px;padding:24px;text-align:center;color:var(--muted);font-size:13px}.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:12px 0}.summary-item{background:#f5f8f7;border-radius:11px;padding:10px 5px;text-align:center}.summary-item b{display:block;font-size:20px}.summary-item span{font-size:11px;color:var(--muted)}.notice{border:1px solid #f5c27d;background:var(--amber-soft);color:#713b15;padding:11px;border-radius:12px;font-size:13px;line-height:1.55}.share-target{text-align:center;margin-top:12px;color:var(--muted);font-size:13px}.result-box{margin-top:10px;border-radius:11px;padding:10px 12px;background:#edf7f4;color:#155c52;font-size:13px;line-height:1.55}.result-box.error{background:#fff1f0;color:var(--red)}.diag-grid{display:grid;grid-template-columns:1fr auto;gap:0 14px;font-size:13px}.diag-grid>*{padding:9px 0;border-bottom:1px solid #edf1f0}.diag-grid b{text-align:right}.danger-note{border-color:#fac9c5;background:#fff9f8;color:#7b2820;font-size:13px;line-height:1.55}.prose ol{padding-left:22px;margin:8px 0}.prose li{margin:9px 0;line-height:1.6;font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.span-2{grid-column:1/-1}.admin-banner{background:#eef7f5;color:#264f48;font-size:13px;line-height:1.55}.master-section{border-top:1px solid #e8eeec;padding-top:14px;margin-top:14px}.master-row{display:grid;grid-template-columns:120px 1fr auto;gap:8px;align-items:center;margin-top:8px}.master-row code{font-size:11px;color:#667085;overflow-wrap:anywhere}.master-row input[type=text]{width:100%;min-height:42px;border:1px solid #cbd7d3;border-radius:10px;padding:9px;font:inherit}.toggle{display:flex;gap:5px;align-items:center;font-size:12px}.toggle input{width:20px;height:20px}.button-row{margin-top:15px}.file-label{display:block;text-align:center;position:relative;overflow:hidden}.file-label input{position:absolute;inset:0;opacity:0}.panel{display:none}.panel.active{display:block}.toolbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.96);border-top:1px solid #dce5e2;backdrop-filter:blur(10px);padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.toolbar-inner{max-width:800px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.tool{min-height:46px;border:0;border-radius:11px;background:#f1f4f3;color:#4a5c57;font-size:12px;font-weight:850}.tool.active{background:var(--brand-soft);color:var(--brand)}footer{text-align:center;color:#91a09c;font-size:11px;margin-top:18px}dialog{border:0;border-radius:18px;padding:0;width:min(92vw,440px);box-shadow:0 24px 90px rgba(10,40,34,.25)}dialog::backdrop{background:rgba(10,27,24,.52)}.dialog-card{padding:20px;position:relative}.dialog-close{position:absolute;right:12px;top:10px;width:38px;height:38px;border:0;background:#f1f4f3;border-radius:50%;font-size:24px;color:#52625e}.gate{max-width:600px;margin:26px auto}.gate h2{font-size:21px}
@media(max-width:520px){.app{padding:14px 10px 112px}h1{font-size:21px}.header{gap:8px}.stats{grid-template-columns:repeat(2,1fr)}.summary-grid{grid-template-columns:repeat(3,1fr)}.queue-meta{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.master-row{grid-template-columns:88px 1fr}.master-row .toggle{grid-column:2}.today-chip{display:none}.toolbar-inner{gap:4px}.tool{font-size:11px}.card{padding:14px}.action-row{flex-wrap:wrap}.action{min-width:120px}}
@media print{.toolbar,.primary,.secondary,.link-button,.action-row{display:none!important}.app{padding:0}.card{box-shadow:none}.panel{display:block!important}}
