@import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800&family=Oswald:wght@600&display=swap";.elevator-worker,.elevator-manager,.elevator-operator,.elevator-route-loading{--e-ink:#102a25;--e-green:#15483c;--e-lime:#dced66;--e-paper:#f7f6f0;--e-line:#d5dbd4;--e-red:#a63f34;min-height:100vh;background:#eeeee7;color:var(--e-ink);font-family:system-ui,-apple-system,Noto Sans TC,sans-serif}.elevator-route-loading{display:grid;place-items:center;font-weight:800}.elevator-worker button,.elevator-worker select,.elevator-worker input,.elevator-manager button,.elevator-manager select,.elevator-manager input,.elevator-operator button,.elevator-operator input{min-height:48px;font:inherit}.elevator-primary,.elevator-secondary{border:0;padding:13px 18px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px}.elevator-primary{background:var(--e-lime);color:var(--e-ink)}.elevator-secondary{background:#fff;border:1px solid var(--e-line);color:var(--e-ink)}.elevator-worker{max-width:640px;margin:auto;padding:0 16px 90px}.elevator-worker-head{margin:0 -16px 18px;padding:18px 16px;background:var(--e-green);color:#fff;display:flex;align-items:center;justify-content:space-between}.elevator-worker-head span,.elevator-console-head span,.elevator-operator header span{font-size:11px;letter-spacing:.18em;color:#bdd0ca}.elevator-worker-head h1,.elevator-console-head h1,.elevator-operator header h1{font-size:22px;margin:4px 0 0}.elevator-worker-head button,.elevator-console-head button,.elevator-operator header button{border:1px solid #ffffff38;background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px}.elevator-section-title{font-size:17px;margin:23px 0 12px}.elevator-cards{display:grid;gap:12px}.elevator-cards article{background:var(--e-paper);border:1px solid var(--e-line);padding:16px;display:grid;gap:12px}.elevator-cards article.disabled{opacity:.62}.elevator-cards article header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.elevator-cards article header div{display:grid;gap:4px}.elevator-cards article strong{font-size:22px}.elevator-cards article span,.elevator-cards article p{font-size:12px;color:#61726c;margin:0}.elevator-cards article b{font-size:12px;background:#e5eadf;padding:7px 9px;height:max-content}.elevator-status-badge{box-sizing:border-box;min-width:132px;min-height:52px;padding:10px 14px!important;display:flex;align-items:center;justify-content:center;text-align:center;font-size:17px!important;font-weight:900;line-height:1.25;border:1px solid transparent}.elevator-status-badge.status-idle{background:#dfe9df;color:#173f35;border-color:#b9cbbd}.elevator-status-badge.status-busy{background:#ffe2a3;color:#674900;border-color:#e5bd60}.elevator-status-badge.status-exclusive{background:#d9e8f2;color:#174c69;border-color:#aac9dc}.elevator-status-badge.status-maintenance,.elevator-status-badge.status-stopped{background:#f3d7d1;color:#842f27;border-color:#d7a39b}.elevator-cards .elevator-warning{color:var(--e-red);font-weight:800}.elevator-offline,.elevator-info,.elevator-error,.elevator-safety{padding:12px 14px;margin:12px 0;display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.55}.elevator-offline{background:#312f2b;color:#fff}.elevator-info{background:#eef1ce;color:#43561e}.elevator-error{background:#ffebe7;color:#8b352c;border:1px solid #e4bdb5}.elevator-error svg,.elevator-offline svg,.elevator-safety svg{width:19px;flex:none}.elevator-error button{margin-left:auto;border:1px solid currentColor;background:transparent;color:inherit;padding:4px 8px}.elevator-active,.elevator-blocked{background:var(--e-green);color:#fff;padding:26px 20px;display:grid;justify-items:center;text-align:center;gap:12px}.elevator-active>svg,.elevator-blocked>svg{width:44px;height:44px;color:var(--e-lime)}.elevator-active h2,.elevator-blocked h2{font-size:20px;margin:0}.elevator-active p{margin:0;color:#c1d2cd}.elevator-active button{width:100%}.elevator-refresh{position:fixed;right:18px;bottom:18px;width:54px;border:0;border-radius:50%;background:var(--e-green);color:#fff;display:grid;place-items:center;box-shadow:0 8px 22px #0b2a2260}.elevator-sheet-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;align-items:end}.elevator-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0a211bb3}.elevator-sheet{position:relative;max-height:92vh;overflow:auto;background:var(--e-paper);padding:22px 16px calc(22px + env(safe-area-inset-bottom));display:grid;gap:18px}.elevator-sheet h2{margin:0}.elevator-sheet label{display:grid;gap:8px;font-weight:800}.elevator-floor-pad{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-height:184px;overflow:auto;padding:2px}.elevator-floor-pad button,.elevator-language-grid button,.elevator-type-grid button{border:1px solid var(--e-line);background:#fff;color:var(--e-ink);font-weight:750}.elevator-floor-pad button.selected,.elevator-language-grid button.selected,.elevator-type-grid button.selected{background:var(--e-lime);border-color:#9dae37}.elevator-type-grid,.elevator-language-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.elevator-type-grid button{display:flex;align-items:center;justify-content:center;gap:7px}.elevator-onboarding{padding:20px 16px;display:grid;align-items:center}.elevator-panel{background:var(--e-paper);border:1px solid var(--e-line);padding:22px;display:grid;gap:20px}.elevator-panel h1{margin:0;font-size:27px}.elevator-mark{font-size:11px;letter-spacing:.15em;color:#697b75;display:flex;align-items:center;gap:7px}.elevator-panel fieldset{border:0;padding:0;margin:0;display:grid;gap:9px}.elevator-panel legend,.elevator-field span{font-weight:800;font-size:13px;margin-bottom:8px}.elevator-field{display:grid}.elevator-field select{background:#fff;border:1px solid var(--e-line);padding:0 12px}.elevator-manager{padding:0 28px 70px}.elevator-console-head{margin:0 -28px 25px;padding:15px 28px;background:var(--e-green);color:#fff;display:flex;align-items:center;gap:20px}.elevator-console-head label{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px}.elevator-console-head select{min-width:180px;padding:0 10px}.elevator-manager>section{max-width:1400px;margin:28px auto}.elevator-manager h2{font-size:20px}.elevator-manager-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.elevator-manager-stats article{background:var(--e-paper);border:1px solid var(--e-line);padding:18px;display:flex;align-items:end;justify-content:space-between}.elevator-manager-stats span{font-size:12px;color:#66766f}.elevator-manager-stats strong{font-size:30px}.elevator-title-row{display:flex;align-items:center;justify-content:space-between}.elevator-title-row button{border:1px solid var(--e-line);background:#fff;display:flex;align-items:center;gap:6px;padding:8px 12px}.elevator-dispatch-list,.elevator-block-list{display:grid;gap:8px}.elevator-dispatch-list article{display:grid;grid-template-columns:95px minmax(150px,1fr) 170px auto auto;gap:10px;align-items:center;background:var(--e-paper);border:1px solid var(--e-line);padding:12px}.elevator-dispatch-list article>div{display:grid;gap:4px}.elevator-dispatch-list article span{font-size:12px;color:#687871}.elevator-request-floor strong{font-size:25px}.elevator-dispatch-list select{padding:0 8px;background:#fff;border:1px solid var(--e-line)}.elevator-done{background:var(--e-lime);border:0;padding:8px 12px;display:flex;align-items:center;gap:5px;font-weight:800}.elevator-danger{border:1px solid #d9a9a2;background:#fff4f1;color:var(--e-red);padding:8px}.elevator-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px}.elevator-settings-grid>article{background:var(--e-paper);border:1px solid var(--e-line);padding:17px;display:grid;gap:14px}.elevator-settings-grid>article>header{display:flex;justify-content:space-between;align-items:center}.elevator-settings-grid header strong{font-size:19px}.elevator-settings-grid header span{font-size:11px;color:#697970}.elevator-setting-block{border-top:1px solid var(--e-line);padding-top:13px;display:grid;gap:9px}.elevator-setting-block label{display:grid;gap:5px;font-size:11px;font-weight:800}.elevator-setting-block select,.elevator-setting-block input{border:1px solid var(--e-line);background:#fff;padding:0 9px}.elevator-setting-block button,.elevator-action-pair button{border:1px solid var(--e-line);background:#fff;padding:8px;font-weight:700}.elevator-action-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.elevator-block-list article{background:var(--e-paper);padding:12px;border:1px solid var(--e-line);display:flex;align-items:center;gap:12px}.elevator-block-list span{font-size:12px;color:#697970;flex:1}.elevator-block-list button{border:1px solid var(--e-line);background:#fff;padding:8px}.elevator-denied{display:grid;justify-items:center;text-align:center;padding:50px;background:var(--e-paper)}.elevator-admin-card{background:var(--e-paper);border:1px solid var(--e-line);padding:17px;display:grid;gap:16px}.elevator-inline-form{display:grid;grid-template-columns:1fr 180px auto;gap:10px;align-items:end}.elevator-inline-form label{display:grid;gap:5px;font-size:11px;font-weight:800}.elevator-inline-form input{border:1px solid var(--e-line);padding:0 9px}.elevator-inline-form button,.elevator-company-list button,.elevator-qr-section button{border:1px solid var(--e-line);background:#fff;padding:8px 12px;font-weight:750}.elevator-company-list{display:grid;gap:7px}.elevator-company-list article{display:grid;grid-template-columns:1fr 120px auto;align-items:center;gap:10px;border-top:1px solid var(--e-line);padding-top:9px}.elevator-company-list span{font-size:12px;color:#697970}.elevator-qr-section img{width:min(280px,75vw);height:auto;justify-self:center}.elevator-qr-section code{background:#e9ece6;padding:12px;overflow-wrap:anywhere}.elevator-qr-section p,.elevator-qr-section small,.elevator-setting-block small{font-size:12px;color:#63736d;line-height:1.6;margin:0}.elevator-named-login{min-height:100vh;display:grid;place-items:center;padding:20px;background:#eeeee7;color:#102a25}.elevator-named-login form{width:min(460px,100%);background:#f7f6f0;border:1px solid #d5dbd4;padding:25px;display:grid;gap:15px}.elevator-named-login form>span{font-size:11px;letter-spacing:.18em;color:#708079}.elevator-named-login h1{margin:0}.elevator-named-login p{font-size:13px;color:#65766f;line-height:1.7;margin:0}.elevator-named-login label{display:grid;gap:6px;font-size:12px;font-weight:800}.elevator-named-login label>div{display:flex;align-items:center;border:1px solid #d5dbd4;background:#fff;padding:0 10px}.elevator-named-login label svg{width:18px;color:#697970}.elevator-named-login input{width:100%;border:0;background:transparent;padding:0 9px;outline:0}.elevator-owner-entry,.elevator-owner-login-back{min-height:48px;border:1px solid #d5dbd4;background:#fff;color:#102a25;font-weight:750;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px}.elevator-owner-login-back{position:fixed;top:12px;right:12px;z-index:5}.elevator-account-create{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:end}.elevator-account-create.elevator-operator-create{grid-template-columns:1fr 1fr 1fr auto}.elevator-account-create label,.elevator-account-list label{display:grid;gap:5px;font-size:11px;font-weight:800}.elevator-account-create input,.elevator-account-create select,.elevator-account-list input{border:1px solid var(--e-line);background:#fff;padding:0 9px}.elevator-account-create button,.elevator-account-list button{border:1px solid var(--e-line);background:#fff;padding:8px 12px;font-weight:750}.elevator-account-list{display:grid;gap:8px}.elevator-account-list article{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,240px) auto auto;align-items:end;gap:8px;border-top:1px solid var(--e-line);padding-top:10px}.elevator-account-list article>div{display:grid;gap:4px;align-self:center}.elevator-account-list article span,.elevator-admin-card>small{font-size:12px;color:#697970}.elevator-operator{padding-bottom:50px}.elevator-operator>header{background:var(--e-green);color:#fff;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.elevator-operator-head-actions{display:flex;gap:8px}.elevator-safety{margin:12px;background:#fff2c7;color:#6c5511;border:1px solid #dfcd8d;font-weight:800}.elevator-queue{padding:12px;display:grid;gap:12px}.elevator-queue article{background:var(--e-paper);border:1px solid var(--e-line);padding:16px;display:grid;grid-template-columns:120px 1fr 1fr;gap:10px;align-items:center}.elevator-queue article>div{grid-row:1/3;display:flex;align-items:center;gap:10px}.elevator-queue article>div strong{font-size:42px}.elevator-queue article>div span{font-size:29px;color:#466c61}.elevator-queue article p{grid-column:2/4;margin:0;font-size:15px;font-weight:800}.elevator-arrived,.elevator-overweight{border:0;padding:14px;font-weight:900;display:flex;justify-content:center;align-items:center;gap:8px;min-height:62px}.elevator-arrived{background:var(--e-lime)}.elevator-overweight{background:#27332f;color:#fff}.elevator-empty{display:grid;justify-items:center;text-align:center;padding:70px 20px}.elevator-empty svg{width:52px;height:52px;color:#4a7668}.elevator-operator-login{display:grid;place-items:center;padding:20px}.elevator-operator-login form{width:min(440px,100%);background:var(--e-paper);border:1px solid var(--e-line);padding:25px;display:grid;gap:15px}.elevator-operator-login form>span{font-size:11px;letter-spacing:.18em;color:#708079}.elevator-operator-login h1{margin:0}.elevator-operator-login p{font-size:13px;color:#65766f;line-height:1.7}.elevator-operator-login label{display:grid;gap:6px;font-size:12px;font-weight:800}.elevator-operator-login input{border:1px solid var(--e-line);padding:0 10px}.elevator-policy-summary{display:grid;gap:4px;padding:10px;background:#ecefe8}.elevator-policy-summary strong,.elevator-policy-summary span{font-size:12px!important}.elevator-cargo-picker{border:0;padding:0;margin:0;display:grid;gap:8px}.elevator-cargo-picker legend{font-weight:900;margin-bottom:8px}.elevator-cargo-picker>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.elevator-cargo-picker button{border:1px solid var(--e-line);background:#fff;text-align:left;padding:9px;font-weight:750}.elevator-cargo-picker button.selected{background:var(--e-lime);border-color:#9dae37}.elevator-heavy-warning{display:flex;align-items:center;gap:10px;padding:14px;background:#7d281f;color:#fff;font-weight:900;line-height:1.55}.elevator-heavy-warning svg{flex:none}.elevator-floor-pad button:disabled,.elevator-type-grid button:disabled{opacity:.3;cursor:not-allowed}.elevator-heavy-badge{color:#fff;background:#8a2f26;padding:4px 7px;width:max-content;font-size:11px}.elevator-section-note{font-size:12px;color:#65766f}.elevator-override-card>label,.elevator-override-card .elevator-action-pair label{display:grid;gap:5px;font-size:11px;font-weight:800}.elevator-override-card select,.elevator-override-card input{border:1px solid var(--e-line);background:#fff;padding:0 9px}.elevator-override-card .elevator-action-pair>button{border:1px solid var(--e-line);background:#fff;padding:8px;font-weight:750}.elevator-queue article>.elevator-operator-cargo{grid-column:2/4;grid-row:auto;display:flex;flex-wrap:wrap;gap:6px}.elevator-operator-cargo span{font-size:12px!important;background:#ecefe8;padding:6px 8px;color:#263f37!important}.elevator-operator-cargo b{color:#a23b30;margin-right:5px}@media(max-width:760px){.elevator-manager{padding:0 12px 60px}.elevator-console-head{margin:0 -12px 18px;padding:12px;display:grid;grid-template-columns:1fr auto}.elevator-console-head label{grid-column:1/-1;grid-row:2;margin:0;display:grid}.elevator-console-head select{width:100%}.elevator-manager-stats{grid-template-columns:1fr}.elevator-dispatch-list article{grid-template-columns:80px 1fr}.elevator-dispatch-list select{grid-column:1/-1}.elevator-dispatch-list .elevator-done,.elevator-dispatch-list .elevator-danger{width:100%;justify-content:center}.elevator-queue article{grid-template-columns:1fr 1fr}.elevator-queue article>div{grid-column:1/-1;grid-row:auto}.elevator-queue article p,.elevator-queue article>.elevator-operator-cargo{grid-column:1/-1}.elevator-floor-pad{grid-template-columns:repeat(6,1fr)}.elevator-cargo-picker>div{grid-template-columns:1fr}.elevator-inline-form,.elevator-account-create,.elevator-account-create.elevator-operator-create{grid-template-columns:1fr}.elevator-company-list article{grid-template-columns:1fr auto}.elevator-company-list span{grid-column:1}.elevator-account-list article{grid-template-columns:1fr 1fr}.elevator-account-list article>div,.elevator-account-list article>label{grid-column:1/-1}.elevator-account-list article button{width:100%}}@media(min-width:641px){.elevator-sheet{width:600px;margin:auto;border:1px solid var(--e-line)}}@media print{.elevator-manager>*:not(.elevator-qr-section){display:none!important}.elevator-manager{padding:0;background:#fff}.elevator-qr-section{margin:0!important}.elevator-qr-section .elevator-action-pair,.elevator-qr-section small{display:none}.elevator-qr-section code{font-size:18px}}.elevator-signature{margin:32px auto 0;padding:16px 12px;border-top:1px solid var(--e-line);color:#718079;font-size:11px;letter-spacing:.04em;text-align:center;width:min(100%,640px)}.elevator-panel>.elevator-signature{margin-top:4px}.elevator-operator-login>.elevator-signature,.elevator-manager-login>.elevator-signature{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:2}.elevator-manager-login{position:relative;--e-line:#d5dbd4}.elevator-multi-select{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 0}.elevator-multi-select button{align-items:flex-start;background:#fff;border:1px solid #cbd5e1;border-radius:12px;display:flex;flex-direction:column;min-height:58px;padding:10px 12px;text-align:left}.elevator-multi-select button.selected{background:#ecfdf5;border-color:#047857;color:#065f46}.elevator-multi-select button.floor-blocked{background:#fff0ed;border-color:#c94b3d;color:#8b352c}.elevator-multi-select button.floor-blocked small{color:#8b352c;font-weight:800}.elevator-multi-select button:disabled{cursor:not-allowed;opacity:.45}.elevator-selected-summary{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.elevator-selected-summary span{background:#e0f2fe;border-radius:999px;color:#075985;padding:6px 10px}.elevator-operator-cargo span{align-items:flex-start;display:flex;flex-direction:column;gap:2px}:root{font-family:Noto Sans TC,system-ui,sans-serif;color:#18332c;background:#f3f1ea;font-synthesis:none;--green:#173f35;--lime:#d8e86d;--cream:#f3f1ea;--line:#d9ddd5;--muted:#6f7d78}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--green);color:#fff;padding:24px 15px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 28px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--lime);color:var(--green);font-size:19px;font-weight:800;border-radius:4px;transform:rotate(-2deg)}.brand strong,.brand small{display:block}.brand strong{font-size:20px;letter-spacing:.15em}.brand small{font-size:10px;color:#aabeb7;letter-spacing:.15em;margin-top:2px}.close-menu{display:none!important;margin-left:auto;color:#fff!important}.sidebar nav{display:grid;gap:5px}.sidebar nav button{border:0;background:transparent;color:#b9cbc5;border-radius:7px;padding:11px 13px;display:flex;align-items:center;gap:12px;text-align:left}.sidebar nav button:hover,.sidebar nav button.active{background:#28564a;color:#fff}.sidebar nav button.active:after{content:"";width:5px;height:5px;background:var(--lime);border-radius:50%;margin-left:auto}.sidebar-foot{margin-top:auto;border-top:1px solid #31584e;padding:18px 10px 0;color:#aec1bb;font-size:11px;display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;background:#7dea9d;border-radius:50%;box-shadow:0 0 0 3px #2e5a4d}.status-dot.demo{background:#f2cf70}.topbar{height:72px;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;gap:16px;background:#f3f1eaf0;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar div{display:flex;flex-direction:column}.topbar small{font-size:9px;color:#899590;letter-spacing:.15em}.topbar strong{font-size:14px}.today{margin-left:auto;font-size:12px;color:var(--muted)}.account-summary{border-left:1px solid var(--line);padding-left:16px;max-width:220px}.account-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-exit{border:1px solid var(--line);background:transparent;color:var(--green);padding:7px 9px;display:inline-flex;align-items:center;gap:5px;font-size:11px}.topbar-exit:disabled{opacity:.5}.menu-button{display:none!important}.icon-button{display:grid;place-items:center;border:0;background:transparent;color:var(--green);padding:5px}.content{padding:42px;max-width:1400px;margin:auto}.hero{min-height:265px;padding:40px 44px;display:flex;align-items:flex-end;justify-content:space-between;background:var(--green);color:#fff;border-radius:2px;position:relative;overflow:hidden}.hero:after{content:"03";font-family:Oswald,sans-serif;font-size:250px;line-height:1;color:#1e4a3f;position:absolute;right:22%;bottom:-55px}.hero>div,.hero button{position:relative;z-index:1}.eyebrow{font-size:9px;letter-spacing:.24em;color:#84928d;font-weight:700}.hero .eyebrow{color:var(--lime)}h1,h2,p{margin-top:0}.hero h1{font-size:36px;line-height:1.35;letter-spacing:.05em;margin:12px 0}.hero p{color:#a9bdb7;font-size:13px;margin-bottom:0}.primary,.secondary{border:0;border-radius:3px;padding:12px 18px;font-weight:700;font-size:13px;display:inline-flex;gap:7px;align-items:center;justify-content:center}.primary{background:var(--lime);color:var(--green)}.primary:hover{background:#e5f286}.primary:disabled,.secondary:disabled{opacity:.45;cursor:not-allowed}.secondary{border:1px solid var(--line);background:#fff;color:var(--green)}.stats{display:grid;grid-template-columns:1fr 1fr 1fr;margin:24px 0 52px;gap:1px;background:var(--line);border:1px solid var(--line)}.stats article{background:#faf9f5;padding:25px 28px;display:grid;grid-template-columns:1fr auto;align-items:end}.stats small{font-size:11px;color:var(--muted)}.stats strong{grid-row:1/3;grid-column:2;font-family:Oswald,sans-serif;font-size:34px}.stats span,.stats button{font-size:10px;color:#8e9995}.stats button{border:0;background:transparent;text-align:left;padding:0}.stats .accent{background:var(--lime)}.stats .accent small,.stats .accent button{color:#3f5a50}.section-heading{margin-bottom:16px}.section-heading h2{font-size:22px;margin:6px 0}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.quick-grid button{border:1px solid var(--line);background:#faf9f5;text-align:left;padding:23px;display:grid;gap:8px;color:var(--green);transition:.2s}.quick-grid button:hover{transform:translateY(-2px);box-shadow:0 8px 22px #173f3510}.quick-grid svg{margin-bottom:12px}.quick-grid strong{font-size:14px}.quick-grid span{font-size:11px;color:var(--muted)}.page-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.page-title h1{font-size:30px;margin:7px 0 4px}.page-title p{font-size:12px;color:var(--muted);margin:0}.data-card{background:#faf9f5;border:1px solid var(--line)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:680px}th{text-align:left;color:#83908b;font-size:10px;letter-spacing:.08em;padding:13px 18px;background:#eeeee8;border-bottom:1px solid var(--line)}td{font-size:12px;padding:16px 18px;border-bottom:1px solid #e6e7e1;max-width:300px;white-space:pre-wrap}td a{color:#397866}.row-actions{text-align:right;white-space:nowrap}.row-actions button,.paper-tools button{border:0;background:transparent;color:#70807a;padding:5px}.row-actions button:hover{color:#173f35}.empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#95a09c;gap:7px;text-align:center}.empty span{font-weight:700;color:#566760}.empty p{font-size:11px}.alert{padding:12px 15px;background:#fff0ec;border:1px solid #e8c5bb;color:#984e3d;margin-bottom:15px;font-size:12px}.modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px}.modal-backdrop,.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#102820b8}.modal{position:relative;width:min(700px,100%);max-height:90vh;overflow:auto;background:#f8f7f2;box-shadow:0 25px 70px #07171160}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:23px 26px;border-bottom:1px solid var(--line)}.modal-head small{font-size:9px;letter-spacing:.2em;color:#8b9792}.modal-head h2{font-size:20px;margin:4px 0 0}.modal form{padding:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid label,.report-controls label{display:grid;gap:7px;font-size:11px;font-weight:600;color:#53635d}.form-grid label.wide{grid-column:1/-1}.form-grid b{color:#b45e43;margin-left:3px}input,textarea,select{width:100%;border:1px solid #cfd5cf;background:#fff;color:#18332c;padding:10px 11px;border-radius:2px;outline:none}input:focus,textarea:focus,select:focus{border-color:#3e7566;box-shadow:0 0 0 2px #3e75661a}textarea{min-height:85px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:24px;margin-top:24px;border-top:1px solid var(--line)}.report-layout{display:grid;grid-template-columns:280px 1fr;gap:22px}.report-controls{padding:24px;height:max-content;display:grid;gap:18px}.report-controls h2{font-size:16px;margin:0 0 2px}.hint{font-size:10px;color:#8a9691;line-height:1.7}.report-paper{background:#fff;min-height:600px;border:1px solid #deded8;padding:48px 55px;box-shadow:0 12px 30px #173f3508}.report-paper h2{text-align:center;letter-spacing:.5em;font-size:20px;margin:18px 0 42px}.report-paper pre{white-space:pre-wrap;font-family:inherit;line-height:2.2;font-size:13px}.paper-tools{text-align:right;margin:-30px -38px 0 0}.paper-tools button{display:inline-flex;align-items:center;gap:5px;font-size:11px}.backdrop{display:none}.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#173f35 0,#173f35 42%,#f3f1ea 42%)}.login-card{width:min(500px,100%);background:#faf9f5;border:1px solid var(--line);padding:38px;box-shadow:0 24px 70px #07171138}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:38px}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:21px;letter-spacing:.15em}.login-brand small{font-size:9px;color:var(--muted);letter-spacing:.14em;margin-top:3px}.login-card h1{font-size:30px;margin:8px 0 10px}.login-card>p{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:24px}.login-form,.otp-form{display:grid;gap:14px}.login-form label,.otp-form label{display:grid;gap:7px;font-size:11px;font-weight:700}.input-with-icon{position:relative}.input-with-icon svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#71817b}.input-with-icon input{padding-left:39px}.otp-form{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.otp-form p{font-size:11px;color:var(--muted);line-height:1.7;margin:0}.login-unconfigured{display:grid;justify-items:center;text-align:center;gap:8px;background:#eeeee8;padding:23px;color:var(--muted)}.login-unconfigured strong{color:var(--green)}.login-unconfigured span{font-size:11px;line-height:1.7}.demo-entry{border-top:1px solid var(--line);margin-top:24px;padding-top:20px;display:grid;gap:9px}.demo-entry>span{font-size:11px;font-weight:700}.demo-entry small{font-size:10px;color:var(--muted);line-height:1.6}.auth-loading{background:#faf9f5;border:1px solid var(--line);padding:22px 28px;font-size:12px;font-weight:700}.review-toolbar{display:flex;align-items:end;gap:24px;padding:18px 20px;margin-bottom:18px}.review-toolbar label{display:grid;gap:6px;min-width:240px}.review-toolbar label span,.review-toolbar small{font-size:10px;color:var(--muted)}.review-toolbar>div{display:grid;gap:5px}.review-toolbar strong{font-size:13px}.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.review-card{background:#faf9f5;border:1px solid var(--line);padding:18px;display:grid;gap:16px;align-content:start}.review-card-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.review-card-head div{display:grid;gap:5px}.review-card-head small{font-size:10px;color:var(--muted)}.review-card-head strong{font-size:20px;letter-spacing:.04em}.review-card-head>span{background:#e9eddf;color:#46604f;padding:5px 8px;border-radius:999px;font-size:10px}.review-image{width:100%;max-height:330px;object-fit:contain;background:#e8e9e3;border:1px solid var(--line)}.review-image-button{width:100%;min-height:88px}.review-evidence{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin:0;border:1px solid var(--line)}.review-evidence>div{background:#fff;padding:11px}.review-evidence .wide{grid-column:1/-1}.review-evidence dt{font-size:9px;color:var(--muted);margin-bottom:5px}.review-evidence dd{font-size:12px;margin:0;line-height:1.55;overflow-wrap:anywhere}.ocr-raw-text{white-space:pre-wrap;max-height:110px;overflow:auto}.review-controls{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:15px}.review-controls label{display:grid;gap:6px}.review-controls label span{font-size:10px;font-weight:700;color:#53635d}.review-controls textarea{min-height:64px}.review-actions{display:flex;justify-content:flex-end;gap:8px}.review-readonly{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;line-height:1.6;margin:0;border-top:1px solid var(--line);padding-top:13px}@media(max-width:800px){.app-shell{display:block}.sidebar{position:fixed;left:0;transform:translate(-100%);width:250px;transition:.22s}.sidebar.open{transform:translate(0)}.close-menu,.menu-button{display:grid!important}.backdrop{display:block;position:fixed;z-index:15}.topbar{height:62px;padding:0 16px;gap:10px}.today{display:none}.account-summary{margin-left:auto;max-width:125px;border-left:0;padding-left:0}.account-summary small{display:none}.account-summary strong{font-size:10px}.topbar-exit{font-size:0;padding:7px}.topbar-exit svg{width:16px}.content{padding:24px 16px 90px}.hero{padding:30px 24px;min-height:320px;display:block}.hero:after{right:-15px;bottom:-25px;font-size:210px}.hero h1{font-size:28px;margin-top:18px}.hero button{position:absolute;bottom:25px;left:24px}.stats{grid-template-columns:1fr;margin:14px 0 38px}.quick-grid{grid-template-columns:1fr}.page-title{align-items:flex-start}.page-title h1{font-size:25px}.page-title .primary{padding:10px 12px}.table-wrap{overflow:visible}table,thead,tbody,tr,td{display:block;min-width:0}thead{display:none}tr{padding:13px 16px;border-bottom:1px solid var(--line)}td{border:0;padding:5px 0 5px 34%;position:relative;min-height:29px;max-width:none}td:before{content:attr(data-label);position:absolute;left:0;color:#87928e;font-size:10px}.row-actions{text-align:left;padding-left:34%;margin-top:4px}.row-actions:before{display:none}.form-grid{grid-template-columns:1fr}.form-grid label.wide{grid-column:auto}.modal-layer{padding:0;align-items:end}.modal{width:100%;max-height:92vh}.report-layout{grid-template-columns:1fr}.report-paper{padding:32px 22px;min-height:440px}.paper-tools{margin:-17px -8px 0 0}.report-paper h2{margin-top:30px}.review-toolbar{align-items:stretch;display:grid;gap:12px}.review-toolbar label{min-width:0}.review-grid,.review-evidence{grid-template-columns:1fr}.review-evidence .wide{grid-column:auto}.login-shell{padding:0;background:var(--cream);align-items:stretch}.login-card{width:100%;min-height:100vh;padding:30px 22px;box-shadow:none}.login-card h1{font-size:26px}}@media print{.sidebar,.topbar,.page-title,.report-controls,.paper-tools{display:none!important}.app-shell{display:block}.content{padding:0}.report-layout{display:block}.report-paper{border:0;box-shadow:none;padding:20px}}.sidebar .brand{flex:none}.sidebar nav{gap:13px;overflow-y:auto;min-height:0;align-content:start;padding-right:2px}.nav-group{display:grid;gap:4px}.nav-group-label{padding:0 12px;color:#7da095;font-size:9px;font-weight:700;letter-spacing:.16em}.sidebar-foot{margin-top:14px;flex:none}.logistics-filter{display:flex;align-items:end;gap:18px;padding:17px 20px;margin-bottom:18px}.logistics-filter label{display:grid;gap:6px;font-size:11px;font-weight:700;min-width:220px}.logistics-filter span{font-size:11px;color:var(--muted)}.logistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px}.logistics-card{background:#faf9f5;border:1px solid var(--line);padding:19px;display:grid;gap:13px}.logistics-card h2{font-size:20px;margin:5px 0}.logistics-card p,.logistics-card small,.logistics-card footer{font-size:11px;color:var(--muted);margin:0}.logistics-card>strong{font-size:26px;font-family:Oswald,sans-serif}.logistics-card>strong small{font-family:inherit}.logistics-state{font-size:12px;font-weight:800;padding:9px 11px;background:#eceee6;color:#566760}.logistics-state.arrival{background:#f8edcd;color:#795b13}.logistics-state.lift,.logistics-state.relocate{background:#dcece6;color:#28614f}.logistics-state.handover{background:#e3e8f2;color:#405879}@media(max-width:800px){.logistics-filter{display:grid;align-items:stretch}.logistics-filter label{min-width:0}}.attendance-layout{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(220px,.62fr) minmax(340px,1.35fr);gap:16px;align-items:stretch}.attendance-controls,.attendance-clock-card,.attendance-result{padding:22px}.attendance-controls{display:grid;gap:16px;align-content:start}.attendance-controls label{display:grid;gap:7px;font-size:11px;font-weight:700;color:#53635d}.attendance-clock-card{display:grid;justify-items:center;align-content:center;text-align:center;color:var(--green);min-height:220px;background:var(--green);border-color:var(--green);color:#fff}.attendance-clock-card small,.attendance-clock-card span{font-size:11px;color:#b9cbc5}.attendance-clock-card strong{font-family:Oswald,sans-serif;font-size:39px;letter-spacing:.05em;margin:7px 0}.attendance-result{display:grid;align-content:start;gap:13px}.attendance-result>small{font-size:10px;color:var(--muted)}.attendance-result>strong{font-size:14px;line-height:1.8}.attendance-result p{font-size:12px;color:var(--muted);margin:0}.attendance-details{display:flex;flex-wrap:wrap;gap:8px 14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}.attendance-details b{color:#b63e31}.attendance-action{width:100%;min-height:54px;margin-top:auto}.attendance-result .hint{padding-top:4px;text-align:center}@media(max-width:950px){.attendance-layout{grid-template-columns:1fr 1fr}.attendance-result{grid-column:1/-1}}@media(max-width:600px){.attendance-layout{grid-template-columns:1fr}.attendance-result{grid-column:auto}.attendance-clock-card{min-height:185px}}.attendance-missed,.attendance-correction{margin-top:18px;padding:22px}.attendance-missed{display:grid;gap:12px}.attendance-missed h2,.attendance-correction h2{font-size:20px;margin:5px 0}.attendance-missed p,.attendance-correction p{font-size:11px;color:var(--muted);margin:0}.attendance-missed article{display:grid;grid-template-columns:100px 1fr;gap:7px 16px;padding:13px 0;border-top:1px solid var(--line);font-size:12px}.attendance-missed article strong{color:#b63e31}.attendance-missed article small{grid-column:2;color:var(--muted);line-height:1.6}.attendance-correction{display:grid;gap:16px}.correction-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.correction-grid label{display:grid;gap:7px;font-size:11px;font-weight:700;color:#53635d}.correction-grid .wide{grid-column:1/-1}.attendance-correction>.primary{justify-self:end}@media(max-width:600px){.attendance-missed article{grid-template-columns:1fr}.attendance-missed article small{grid-column:auto}.correction-grid{grid-template-columns:1fr}.attendance-correction>.primary{width:100%}}.crane-operation,.settings-form{padding:22px}.crane-operation{display:grid;gap:20px}.preset-picker{display:grid;gap:9px}.preset-picker>span{font-size:11px;font-weight:700;color:#53635d}.preset-picker>span small{margin-left:8px;color:var(--muted);font-weight:400}.preset-picker>div{display:flex;flex-wrap:wrap;gap:9px}.preset-picker button{min-width:130px;border:1px solid var(--line);background:#fff;color:var(--green);padding:12px;text-align:left}.preset-picker button.selected{background:var(--lime);border-color:#b7c64e}.selected-location{margin:0;color:#356657;font-size:12px;font-weight:700}.crane-form-actions{display:flex;justify-content:flex-end;gap:10px}.crane-form-actions>button:not(.primary){border:1px solid var(--line);background:#fff;color:var(--green);padding:11px 16px;font-weight:700}.crane-history-title{align-items:center}.crane-history-filter{display:flex;align-items:end;gap:18px;padding:17px 20px;margin-bottom:18px}.crane-history-filter label{display:grid;gap:6px;min-width:220px;font-size:11px;font-weight:700;color:#53635d}.crane-history-filter span{font-size:11px;color:var(--muted)}.crane-history-list{padding:8px 20px}.crane-history-list article{display:grid;gap:10px;padding:16px 0;border-bottom:1px solid var(--line)}.crane-history-list article:last-child{border-bottom:0}.crane-history-list header,.crane-history-list article>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.crane-history-list strong{font-size:14px;color:var(--green)}.crane-history-list header span,.crane-history-list article>div span,.crane-history-list small{font-size:11px;color:var(--muted)}.crane-history-list article>div span{background:#f3f4ef;padding:6px 8px}.empty-state{padding:18px 0;color:var(--muted);font-size:12px}.alert button{margin-left:12px;border:1px solid currentColor;background:transparent;color:inherit;padding:5px 8px;font-size:11px;font-weight:700}.equipment-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}.equipment-actions button,.machine-buttons button{border:1px solid var(--line);background:#fff;color:var(--green);padding:12px 16px;font-weight:700}.equipment-actions .primary{border:0}.equipment-complete{padding:20px;border:1px solid var(--line);background:#faf9f5;margin-bottom:14px}.equipment-complete h2{font-size:17px;margin:0 0 14px}.equipment-complete p{font-size:12px;color:var(--muted);margin:0}.machine-buttons{display:flex;flex-wrap:wrap;gap:9px}.machine-buttons button:hover{border-color:#8ca398;background:#f0f3df}.back-button,.danger-link{border:0;background:transparent;color:var(--muted);display:inline-flex;align-items:center;gap:5px;padding:0;margin:0 0 12px;font-size:12px}.danger-link{color:#a24a3f;margin:18px 0 0 14px}.settings-form{margin-bottom:16px}.settings-form h2{font-size:18px}.settings-form .primary{margin-top:20px}.settings-form label small{font-weight:400;color:var(--muted);line-height:1.5}.settings-list{padding:8px 20px}.settings-list article{display:grid;grid-template-columns:1fr auto auto;gap:9px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.settings-list article strong{font-size:13px}.settings-list article span{font-size:11px;color:var(--muted)}.settings-list article button{border:0;background:transparent;color:var(--muted);padding:5px}@media(max-width:600px){.preset-picker>div{display:grid;grid-template-columns:1fr}.preset-picker button{width:100%}.crane-history-title{display:grid;gap:14px}.crane-history-title .primary{width:100%;justify-content:center}.crane-history-filter{display:grid;align-items:stretch}.crane-history-filter label{min-width:0}.crane-history-list header,.crane-history-list article>div{display:grid}.crane-form-actions{display:grid;grid-template-columns:1fr 1fr}.crane-form-actions .primary{margin-top:0}.equipment-actions{display:grid;grid-template-columns:1fr 1fr}.equipment-actions button{justify-content:center}.machine-buttons{display:grid;grid-template-columns:1fr}.machine-buttons button{width:100%;text-align:left}.settings-list article{grid-template-columns:1fr auto auto}.settings-list article span{grid-column:1/-1;grid-row:2}}.crane-edit{justify-self:start}.daily-log-list{padding:8px 20px}.daily-log-list article{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.daily-log-list article:last-child{border-bottom:0}.daily-log-list article>div{display:grid;gap:5px}.daily-log-list strong{font-size:13px}.daily-log-list span,.weather-source{font-size:11px;color:var(--muted)}.daily-log-modal{width:min(980px,100%)}.weather-toolbar{margin:24px 0 15px;padding:14px;background:#eef1de;display:flex;justify-content:space-between;gap:16px;align-items:center}.weather-toolbar>div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}.weather-toolbar small{grid-column:2;font-size:10px;color:var(--muted)}.weather-periods{display:grid;gap:12px}.weather-periods fieldset{border:1px solid var(--line);padding:14px;margin:0}.weather-periods legend{font-size:12px;font-weight:800;color:var(--green);padding:0 5px}.weather-periods legend small{font-size:10px;color:var(--muted);font-weight:500}.weather-source{display:block;margin-top:10px}@media(max-width:600px){.daily-log-list article{align-items:flex-start;display:grid}.weather-toolbar{display:grid}.weather-toolbar .secondary{width:100%}}.alimak-manager-shortcut{min-height:48px;margin:-8px 0 22px;border:1px solid #cdd79b;background:#f1f5d2;color:var(--green);font-size:12px;font-weight:800;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px}.login-recovery{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.login-recovery-toggle{border:0;background:transparent;color:#496c61;padding:6px 0;font-size:11px;font-weight:800;text-decoration:underline}.login-sent{font-size:11px;color:#496c31}.topbar-password{border:1px solid var(--line);background:#fff;color:var(--green);padding:7px 9px;display:inline-flex;align-items:center;gap:5px;font-size:11px}.password-setup-banner{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:16px;margin-bottom:22px;background:#f1f5d2;border:1px solid #cdd79b;color:var(--green)}.password-setup-banner>svg{width:24px}.password-setup-banner>div{display:grid;gap:4px}.password-setup-banner span{font-size:11px;color:#627047}.password-setup-modal{width:min(520px,100%)}.password-setup-form{padding:24px;display:grid;gap:15px}.password-setup-form p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.password-setup-form label{display:grid;gap:7px;font-size:11px;font-weight:700;color:#53635d}@media(max-width:800px){.topbar-password{font-size:0;padding:7px}.topbar-password svg{width:16px}.password-setup-banner{grid-template-columns:auto 1fr}.password-setup-banner>.primary,.password-setup-banner>.secondary{width:100%}.password-setup-banner>.primary{grid-column:1/2}.password-setup-banner>.secondary{grid-column:2/3}}
