:root{--tg-bg: #f6f8fb;--tg-text: #14213d;--tg-hint: #5b687a;--tg-btn: #2b7cff;--tg-btn-text: #ffffff;--tg-sec-bg: #eef2f7;--tg-destructive: #e53935;--radius: 12px;--gap: 12px}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--tg-bg);color:var(--tg-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:26px;font-weight:700}h2{font-size:18px;font-weight:600}.page{width:min(100%,600px);min-height:100dvh;margin:0 auto;padding:16px 16px 80px}.page--center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.login-shell{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px 16px}.login-card{width:min(100%,420px);display:flex;flex-direction:column;gap:24px}.login-brand h1{font-size:24px;font-weight:700;margin-bottom:4px}.login-form{background:var(--tg-sec-bg);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:14px}.login-sub{margin:0}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.topbar-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.eyebrow{margin:0 0 2px;font-size:12px;color:var(--tg-hint);text-transform:uppercase;letter-spacing:.05em}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-bottom:var(--gap)}.summary-cell{background:var(--tg-sec-bg);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:4px}.summary-cell span{font-size:11px;color:var(--tg-hint);text-transform:uppercase;letter-spacing:.04em}.summary-cell strong{font-size:22px;font-weight:700}.refresh-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--tg-btn);cursor:pointer;margin-bottom:var(--gap);-webkit-user-select:none;user-select:none}.pc-list{display:flex;flex-direction:column;gap:var(--gap)}.pc-card{background:var(--tg-sec-bg);border-radius:var(--radius);padding:14px;border:2px solid transparent;transition:border-color .2s}.pc-card--ok{border-color:#22c55e;background:color-mix(in srgb,#22c55e 8%,var(--tg-sec-bg))}.pc-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.pc-card-title{display:flex;flex-direction:column;gap:2px}.pc-name{font-weight:600;font-size:16px}.pc-login{font-size:13px;color:var(--tg-hint)}.pc-card-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.pc-last-seen{font-size:12px;color:var(--tg-hint);margin-bottom:10px}.pc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.stat{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:11px;color:var(--tg-hint);text-transform:uppercase}.stat-value{font-size:18px;font-weight:700}.negative{color:var(--tg-destructive)}.pc-passes{display:flex;flex-direction:column;gap:4px}.pass-label{font-size:11px;color:var(--tg-hint);text-transform:uppercase}.pass-bars{display:flex;gap:4px}.pass-bar{flex:1;height:6px;background:color-mix(in srgb,var(--tg-hint) 20%,transparent);border-radius:99px;overflow:hidden}.pass-bar-fill{height:100%;background:var(--tg-btn);border-radius:99px;transition:width .3s}.pass-values{display:flex;gap:4px}.pass-val{flex:1;text-align:center;font-size:11px;color:var(--tg-hint)}.badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge-ok{color:#0f6b3f;background:#dff6e9}.badge-warning{color:#8a4f00;background:#fff0c2}.badge-danger{color:#9f1239;background:#ffe4e6}.badge-neutral{color:var(--tg-hint);background:color-mix(in srgb,var(--tg-hint) 12%,transparent)}.page-header{margin-bottom:20px}.page-header p{margin:6px 0 0;color:var(--tg-hint)}.form-card{background:var(--tg-sec-bg);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px;cursor:text}.field-label{font-size:13px;font-weight:500;color:var(--tg-hint)}.field-error{font-size:12px;color:var(--tg-destructive)}.input{width:100%;height:44px;padding:0 12px;background:var(--tg-bg);color:var(--tg-text);border:1.5px solid color-mix(in srgb,var(--tg-hint) 30%,transparent);border-radius:8px;font-size:15px;font-family:inherit;outline:none;transition:border-color .15s}.input:focus{border-color:var(--tg-btn)}.input::placeholder{color:var(--tg-hint);opacity:.6}.btn{display:flex;align-items:center;justify-content:center;height:48px;padding:0 20px;border:none;border-radius:10px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--tg-btn);color:var(--tg-btn-text);width:100%}.btn-secondary{background:color-mix(in srgb,var(--tg-btn) 12%,transparent);color:var(--tg-btn);height:40px;padding:0 14px;white-space:nowrap;flex-shrink:0}.btn-destructive{background:color-mix(in srgb,var(--tg-destructive) 12%,transparent);color:var(--tg-destructive);width:100%}.btn-ghost{background:transparent;color:var(--tg-hint);width:100%;border:1.5px solid color-mix(in srgb,var(--tg-hint) 25%,transparent)}.btn-sm{height:36px;font-size:13px;padding:0 12px}.error-box{background:color-mix(in srgb,var(--tg-destructive) 10%,transparent);color:var(--tg-destructive);border-radius:8px;padding:12px 14px;font-size:14px}.empty-state{text-align:center;padding:40px 20px;color:var(--tg-hint)}.empty-state p{margin:0 0 8px}.hint{margin:0;color:var(--tg-hint);font-size:13px}.spinner{width:32px;height:32px;border:3px solid color-mix(in srgb,var(--tg-btn) 20%,transparent);border-top-color:var(--tg-btn);border-radius:50%;animation:spin .7s linear infinite}.spinner--sm{width:18px;height:18px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.pc-card-wrapper{cursor:pointer;border-radius:var(--radius);outline:none}.pc-card-wrapper:focus-visible .pc-card{outline:2px solid var(--tg-btn);outline-offset:2px}.detail-page{padding-bottom:24px}.detail-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.detail-header-title{display:flex;flex-direction:column;gap:2px}.back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:var(--tg-sec-bg);color:var(--tg-btn);font-size:18px;cursor:pointer;flex-shrink:0;transition:opacity .15s}.back-btn:active{opacity:.6}.tabs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;margin-bottom:16px}.tabs::-webkit-scrollbar{display:none}.tab-btn{flex-shrink:0;height:34px;padding:0 14px;border:1.5px solid color-mix(in srgb,var(--tg-hint) 30%,transparent);border-radius:999px;background:transparent;color:var(--tg-hint);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.tab-btn--active{background:var(--tg-btn);color:var(--tg-btn-text);border-color:var(--tg-btn)}.tab-content{display:flex;flex-direction:column;gap:12px}.tab-loader{display:flex;justify-content:center;padding:48px 0}.chart-wrap{background:var(--tg-sec-bg);border-radius:var(--radius);padding:14px}.chart-title{font-size:14px;font-weight:600;margin:0 0 12px}.chart-empty{text-align:center;padding:24px 0;margin:0}.chart-note{margin:8px 0 0;text-align:center}.daily-table-wrap{background:var(--tg-sec-bg);border-radius:var(--radius);overflow:hidden}.daily-table{width:100%;border-collapse:collapse;font-size:13px}.daily-table th,.daily-table td{padding:9px 10px;text-align:right}.daily-table th:first-child,.daily-table td:first-child{text-align:left}.daily-table th{font-size:11px;font-weight:600;color:var(--tg-hint);text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb,var(--tg-hint) 8%,transparent)}.daily-table tr:not(:last-child) td{border-bottom:1px solid color-mix(in srgb,var(--tg-hint) 10%,transparent)}.daily-table .positive{color:#22c55e;font-weight:600}.daily-table .muted{color:var(--tg-hint)}.settings-page{padding-bottom:32px}.settings-section{background:var(--tg-sec-bg);border-radius:var(--radius);padding:16px;margin-bottom:var(--gap);display:flex;flex-direction:column;gap:12px}.settings-section-title{font-size:13px;font-weight:700;color:var(--tg-hint);text-transform:uppercase;letter-spacing:.06em;margin:0}.settings-hint{margin:0}.agent-key-row{display:flex;gap:8px;align-items:center}.agent-key-input{flex:1;min-width:0;height:40px;padding:0 10px;background:var(--tg-bg);color:var(--tg-hint);border:1.5px solid color-mix(in srgb,var(--tg-hint) 20%,transparent);border-radius:8px;font-size:13px;font-family:ui-monospace,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}.settings-form{display:flex;flex-direction:column;gap:12px}.field-group{display:flex;flex-direction:column;gap:5px}.field-input{width:100%;height:40px;padding:0 12px;background:var(--tg-bg);color:var(--tg-text);border:1.5px solid color-mix(in srgb,var(--tg-hint) 30%,transparent);border-radius:8px;font-size:15px;font-family:inherit;outline:none;transition:border-color .15s}.field-input:focus{border-color:var(--tg-btn)}.save-msg{font-size:13px;padding:8px 12px;border-radius:8px}.save-msg--ok{background:color-mix(in srgb,#22c55e 12%,transparent);color:#0f6b3f}.save-msg--err{background:color-mix(in srgb,var(--tg-destructive) 10%,transparent);color:var(--tg-destructive)}.topbar-settings{width:36px;height:36px;padding:0;font-size:18px;border-radius:8px}.pw-confirm-box{display:flex;flex-direction:column;gap:10px}.pw-confirm-box p{margin:0;font-size:14px}.ss-wrap{display:flex;flex-direction:column;gap:12px}.ss-center{align-items:center;text-align:center;padding:40px 20px}.ss-image{width:100%;border-radius:var(--radius);display:block;object-fit:contain;background:var(--tg-sec-bg)}.ss-btn{max-width:320px;width:100%}.ss-cancel-btn{height:40px;padding:0 16px;background:transparent;color:var(--tg-hint);border:1.5px solid color-mix(in srgb,var(--tg-hint) 25%,transparent);border-radius:10px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;margin-top:8px}.ss-hint{margin-bottom:4px}.ss-subhint{margin-top:-6px;font-size:12px}.ss-ttl-note{text-align:center;margin:0}.ss-error{color:var(--tg-destructive);font-size:13px;margin:0 0 4px}
