:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#102c31;background:#f2f6f4;font-synthesis:none;--ink:#102c31;--muted:#6b7f77;--green-950:#0e3832;--green-800:#185442;--green-700:#1f6b50;--line:#d9e4de;--surface:#fff;--canvas:#f3f7f5;--danger:#a94235;--warning:#a65b16}
*{box-sizing:border-box}[hidden]{display:none!important}html,body{min-height:100%}body{margin:0;background:var(--canvas)}button,input,textarea,select{font:inherit}button{border:0;border-radius:9px;background:var(--green-700);color:#fff;padding:11px 17px;font-weight:750;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--green-800);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.48}input,textarea,select{border:1px solid var(--line);border-radius:9px;color:var(--ink);background:#fff}input:focus,textarea:focus,select:focus{outline:3px solid #488b6c29;border-color:#6b9f88}label{display:block;margin:16px 0 8px;color:#28483e;font-size:12px;font-weight:750}input{display:block;width:100%;height:46px;margin-top:8px;padding:0 13px}.eyebrow{margin:0;color:#5d8172;font-size:10px;font-weight:850;letter-spacing:2.2px;text-transform:uppercase}.outline{color:#285d4b;background:#fff;border:1px solid #cfddd6}.outline:hover:not(:disabled){background:#f4f9f6;border-color:#9ebcaf}

/* Login */
.login-shell{min-height:100svh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 12% 8%,#d8ebe2 0,transparent 34%),radial-gradient(circle at 90% 90%,#e3eee9 0,transparent 32%),#f4f7f5}.login-layout{display:grid;grid-template-columns:minmax(360px,1.1fr) minmax(360px,.9fr);width:min(940px,100%);overflow:hidden;border:1px solid #cbdcd4e6;border-radius:24px;background:var(--surface);box-shadow:0 28px 90px #10372d21}.login-intro{position:relative;min-height:540px;padding:52px;overflow:hidden;color:#eaf4f0;background:linear-gradient(145deg,#103b35,#195844)}.login-intro::after{content:"";position:absolute;width:330px;height:330px;right:-155px;bottom:-130px;border:1px solid #ffffff26;border-radius:50%;box-shadow:0 0 0 55px #ffffff06,0 0 0 110px #ffffff05}.login-logo,.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:850;letter-spacing:1.6px}.login-logo span,.brand span{width:13px;height:13px;border:2px solid #d7eee4;border-radius:50%}.login-intro .eyebrow{margin-top:92px;color:#9fc8b6}.login-intro h1{margin:16px 0 20px;color:#fff;font-size:clamp(37px,5vw,55px);line-height:1.12;letter-spacing:-2px}.login-intro>p:not(.eyebrow){max-width:430px;margin:0 0 34px;color:#c3d9d0;font-size:14px;line-height:1.8}.login-feature{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-top:13px;color:#e0eee8;font-size:12px}.login-feature i{width:7px;height:7px;border-radius:50%;background:#91d1b2;box-shadow:0 0 0 4px #91d1b221}.login-card{align-self:center;padding:56px}.login-card h2{margin:12px 0 8px;font-size:29px;letter-spacing:-.6px}.form-note{margin:0 0 27px;color:var(--muted);font-size:13px}.login-card button{width:100%;height:46px;margin-top:22px}.error{min-height:18px;margin:11px 0 0;color:var(--danger);font-size:12px}

/* App shell */
#app{min-height:100svh;display:grid;grid-template-columns:238px minmax(0,1fr)}aside{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;padding:30px 20px 22px;color:#eaf4f0;background:var(--green-950)}.brand{margin:3px 8px 38px}nav{display:grid;gap:7px}nav button{position:relative;padding:12px 14px 12px 38px;color:#bcd0c8;text-align:left;background:transparent}nav button::before{content:"";position:absolute;left:16px;top:50%;width:7px;height:7px;border:1.5px solid currentColor;border-radius:50%;transform:translateY(-50%)}nav button.active{color:#174b3c;background:#eaf3ee}nav button.active::before{background:currentColor;box-shadow:0 0 0 3px #174b3c1f}.aside-bottom{display:grid;gap:10px;margin-top:auto;padding:15px 8px 0;border-top:1px solid #ffffff1a;font-size:12px}.aside-bottom span{overflow:hidden;color:#bfd2ca;text-overflow:ellipsis;white-space:nowrap}.aside-bottom button{padding:9px 12px;color:#dceae4;background:#ffffff12}main{width:min(100%,1480px);padding:38px 44px 64px}header{display:flex;align-items:end;justify-content:space-between;margin:0 0 25px}header h1{margin:7px 0 0;font-size:31px;letter-spacing:-.8px}

/* Shared panels */
.panel,.device-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 5px 22px #102c3106}.panel{padding:23px}.panel h2{margin:5px 0 18px;font-size:20px}.panel-head,.device-head,.user-row{display:flex;align-items:center;justify-content:space-between}.empty{padding:54px;border:1px dashed #c8d8d0;border-radius:15px;color:#73867d;text-align:center;background:#ffffffa6}.columns{display:grid;grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:20px}.columns form>button{width:100%;margin-top:12px}.user-row{gap:20px;padding:15px 0;border-bottom:1px solid #edf1ef}.user-row:last-child{border-bottom:0}.user-row small{display:block;margin-top:5px;color:#819088}.user-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.user-actions button{padding:7px 10px;font-size:10px}.danger{background:#a94b3b}
.record-head{gap:20px}.record-head h2{margin-bottom:0}.record-search{display:flex;align-items:center;gap:8px;width:min(480px,100%)}.record-search input{height:40px;margin:0}.record-search button{flex:0 0 auto;padding:10px 18px}.record-note{margin:12px 0 6px;color:var(--muted);font-size:12px}.login-record-row{align-items:flex-start}.login-record-row>div:first-child{min-width:0}.login-record-row strong{overflow-wrap:anywhere}.record-result{display:flex;align-items:flex-end;flex-direction:column;max-width:48%;text-align:right}.record-result small{line-height:1.5}

/* Batch workspace */
.batch-panel{display:grid;grid-template-columns:minmax(380px,1fr) minmax(270px,340px);grid-template-areas:"head head" "input controls" "input preview" "input submit" "message message";gap:13px 20px;margin-bottom:20px}.batch-head{grid-area:head;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid #edf2ef}.batch-head h2{margin-bottom:6px}.batch-head p:not(.eyebrow){margin:0;color:var(--muted);font-size:12px}.batch-actions{display:flex;gap:8px}.batch-actions button{width:auto;margin:0;padding:8px 11px;font-size:11px;white-space:nowrap}.batch-panel>textarea{grid-area:input;width:100%;min-height:235px;padding:13px 14px;resize:vertical;line-height:1.65}.batch-controls{grid-area:controls;display:grid;grid-template-columns:1fr;gap:8px}.batch-controls label{margin:0}.batch-controls select,.credential-account{display:block;width:100%;height:42px;margin-top:8px;padding:0 10px}.batch-panel pre{grid-area:preview;min-height:62px;max-height:92px;margin:0;overflow:auto;padding:11px 12px;border-radius:9px;color:#526b61;background:#f3f7f5;white-space:pre-wrap;font:12px/1.55 Inter,"Segoe UI",sans-serif}.batch-panel>#batch-start{grid-area:submit;width:100%;align-self:end}.batch-panel>#batch-message{grid-area:message;min-height:17px;margin:0;color:#285d4b;font-size:12px}

/* Device cards */
.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.device-card{padding:21px;transition:border-color .18s ease,box-shadow .18s ease}.device-card h2{margin:0;font-size:18px}.device-card p{color:#6f8179;font-size:12px;line-height:1.65}.device-card .meta{min-height:59px;white-space:pre-line}.badge{flex:0 0 auto;padding:5px 9px;border-radius:20px;color:#667;background:#eee;font-size:10px;font-weight:750}.badge.online{color:#216643;background:#e3f3e9}.batch-device{display:flex;align-items:center;gap:8px;margin:14px 0 0;color:#526b61}.batch-device input{display:inline-block;width:auto;height:auto;margin:0;accent-color:var(--green-700)}.credential-panel{margin-top:15px;padding-top:15px;border-top:1px solid #edf1ef}.credential-input{display:block;width:100%;min-height:96px;padding:10px 12px;resize:vertical;line-height:1.5}.credential-hint,.native-status{min-height:20px;margin:8px 0 0!important}.native-status{color:#285d4b!important;font-weight:750}.native-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:8px}.native-actions button{margin:0}.otp-status{min-height:20px;margin:6px 0 0!important;color:var(--warning)!important;font-weight:800;letter-spacing:.3px}.device-card.login-success{border-color:#55a77d;box-shadow:0 0 0 2px #55a77d21}.device-card.login-success .native-status{color:#187044!important;font-size:14px}.device-card.login-failed{border-color:#c86b5e}.device-card.login-failed .native-status{color:var(--danger)!important}#result-toast{position:fixed;top:24px;right:24px;z-index:1000;max-width:min(440px,calc(100vw - 32px));padding:15px 18px;border-radius:10px;color:#fff;background:var(--green-700);box-shadow:0 16px 45px #102c3145;font-weight:800}#result-toast.failed{background:var(--danger)}

@media(max-width:1050px){.batch-panel{grid-template-columns:1fr;grid-template-areas:"head" "input" "controls" "preview" "submit" "message"}.batch-panel>textarea{min-height:150px}main{padding-inline:30px}}
@media(max-width:760px){.login-shell{padding:16px}.login-layout{grid-template-columns:1fr;max-width:480px}.login-intro{min-height:auto;padding:31px}.login-intro .eyebrow{margin-top:50px}.login-intro h1{font-size:38px}.login-feature{display:none}.login-card{padding:32px 28px}#app{grid-template-columns:1fr}aside{position:static;height:auto;padding:18px}.brand{margin:2px 4px 17px}nav{display:flex;overflow-x:auto}nav button{flex:1;min-width:max-content;padding:10px 14px;text-align:center}nav button::before{display:none}.aside-bottom{grid-template-columns:1fr auto;align-items:center;margin-top:16px;padding:12px 4px 0}main{padding:25px 16px 48px}header{align-items:center}header h1{font-size:27px}.columns{grid-template-columns:1fr}.batch-head{display:block}.batch-actions{margin-top:14px}.batch-actions button{flex:1}.device-grid{grid-template-columns:1fr}.user-row{align-items:flex-start;flex-direction:column}.user-actions{justify-content:flex-start}.record-head{align-items:stretch;flex-direction:column}.record-search{width:100%}.record-result{align-items:flex-start;max-width:100%;text-align:left}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.purchase-panel{margin-top:15px;padding:15px;border:1px solid #d8e7df;border-radius:12px;background:#f6faf8}.purchase-panel strong,.purchase-panel small{display:block}.purchase-panel small{margin:5px 0 12px;color:#6f8179;line-height:1.55}.purchase-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.purchase-panel button{width:100%;margin:0}.purchase-status{min-height:20px;margin:8px 0 0!important;color:#285d4b!important;font-weight:750}
.receipt-panel{margin-top:22px}.receipt-head{gap:18px}.receipt-head h2{margin:6px 0}.receipt-head .record-note{max-width:760px;margin:0}.receipt-message{min-height:20px;margin:14px 0;color:#285d4b;font-size:12px}.receipt-table-wrap{max-width:100%;overflow:auto;border:1px solid #e4ece7;border-radius:10px}.receipt-table{width:100%;min-width:1540px;border-collapse:collapse;font-size:12px}.receipt-table th,.receipt-table td{padding:10px 11px;border-bottom:1px solid #edf1ef;text-align:left;white-space:nowrap}.receipt-table th{position:sticky;top:0;color:#36594c;background:#f3f7f5;font-weight:800}.receipt-table tr:last-child td{border-bottom:0}.receipt-table td:nth-child(7),.receipt-table td:nth-child(8){color:#71847a}.receipt-table .receipt-download{padding:7px 11px;font-size:11px}
@media(max-width:760px){.receipt-head{align-items:flex-start;flex-direction:column}.receipt-head button{width:100%}.receipt-table{min-width:1250px}}
