:root{--c-primary: #8ecdf0;--c-primary-dark: #2e7cab;--c-primary-deep: #175a85;--c-primary-light: #e9f4fb;--c-primary-ink: #0c2233;--c-bg: #f4f8fb;--c-surface: #ffffff;--c-border: #dfe9f0;--c-border-strong: #c2d4e0;--c-ink: #0c2233;--c-text: #26333e;--c-text-2: #5a6b7a;--c-text-3: #8496a5;--c-ok: #0e9f6e;--c-ok-soft: #e2f7ef;--c-warn: #d97706;--c-warn-soft: #fdf3e0;--c-err: #dc2626;--c-err-soft: #fdeaea;--c-flash: #2e7cab;--c-serial: #6cb8e4;--shadow-card: 0 1px 2px rgba(12, 34, 51, .05), 0 4px 14px rgba(12, 34, 51, .06);--shadow-pop: 0 8px 16px rgba(12, 34, 51, .1), 0 24px 48px rgba(12, 34, 51, .14);--shadow-brand: 0 4px 14px rgba(46, 124, 171, .28);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--header-h: 56px;--terminal-h: 220px;--font-ui: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "Cascadia Code", "JetBrains Mono", Consolas, "Courier New", monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:13px;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;overflow:hidden}button{font-family:inherit}::selection{background:var(--c-primary);color:var(--c-ink)}:focus-visible{outline:2px solid var(--c-primary-dark);outline-offset:2px;border-radius:6px}.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.btn:hover{border-color:var(--c-primary-dark);color:var(--c-primary-dark);background:var(--c-primary-light)}.btn:active{background:#dcedf8}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{flex:none}.btn-primary{background:var(--c-primary-deep);border:1px solid var(--c-primary-deep);color:#fff}.btn-primary:hover{color:#fff;background:#1c6a99;border-color:#1c6a99;box-shadow:var(--shadow-brand)}.btn-primary:disabled{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.btn-danger{color:var(--c-err)}.btn-danger:hover{border-color:var(--c-err);background:var(--c-err-soft);color:var(--c-err)}.btn-icon{width:34px;padding:0;justify-content:center}.btn-toggle.is-on{background:var(--c-primary-deep);border-color:var(--c-primary-deep);color:#fff}.btn-busy{position:relative}.btn-sm{height:28px;padding:0 10px;font-size:11.5px}.btn-block{width:100%;justify-content:center;height:40px;font-size:13.5px}.header{display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--c-primary);color:var(--c-ink);z-index:30}.wordmark{font-family:var(--font-mono);font-size:17px;font-weight:700;letter-spacing:-.5px;color:var(--c-ink);margin-right:8px;user-select:none;border:none;background:transparent;padding:4px 6px;border-radius:var(--r-sm);cursor:pointer;transition:background .12s ease}button.wordmark:hover{background:#0c22331a}span.wordmark{cursor:default}.project-name{height:34px;width:190px;padding:0 10px;border:1px solid rgba(12,34,51,.25);border-radius:var(--r-sm);background:#ffffffa6;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--c-ink)}.project-name::placeholder{color:#0c223380}.project-name:focus{border-color:var(--c-ink);outline:none;background:#fff}.header-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.header-actions .btn{background:#0c223314;border-color:transparent;color:var(--c-ink)}.header-actions .btn:hover{background:#0c223329;color:var(--c-ink)}.header-actions .btn-primary{background:var(--c-ink);border-color:var(--c-ink);color:#fff;box-shadow:none}.header-actions .btn-primary:hover{color:#fff;background:#16344c;border-color:#16344c;box-shadow:none}.header-actions .btn-toggle.is-on{background:var(--c-ink);border-color:var(--c-ink);color:#fff}.header-actions .btn-danger{color:#8a2020}.header-actions .btn-danger:hover{background:#0c223329;color:var(--c-ink)}.btn-account{display:inline-flex;align-items:center;gap:8px}.account-avatar{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;color:var(--c-ink);font-size:11px;font-weight:700}.flash-progress-ring{width:14px;height:14px;border-radius:50%;border:2px solid rgba(12,34,51,.3);border-top-color:var(--c-ink);animation:sp-spin .8s linear infinite}@keyframes sp-spin{to{transform:rotate(360deg)}}.account-wrap{position:relative}.account-menu{position:absolute;right:0;top:44px;min-width:210px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow-pop);padding:6px 0;z-index:60;color:var(--c-text)}.account-menu-head{padding:10px 14px 12px;border-bottom:1px solid var(--c-border);margin-bottom:6px;background:var(--c-primary-light);border-radius:var(--r-md) var(--r-md) 0 0}.account-menu-email{font-size:12.5px;font-weight:700;word-break:break-all}.account-menu-role{font-size:10.5px;color:var(--c-text-2);text-transform:uppercase;letter-spacing:.8px;margin-top:3px}.account-menu .menu-item{display:flex;width:100%;align-items:center;gap:8px;padding:10px 14px;border:none;background:transparent;color:var(--c-text);font-size:12.5px;font-weight:600;cursor:pointer;text-align:left;transition:background .1s ease,color .1s ease}.account-menu .menu-item:hover{background:var(--c-primary-light);color:var(--c-ink)}.account-menu .menu-item.danger{color:var(--c-err)}.account-menu .menu-item.danger:hover{background:var(--c-err-soft);color:var(--c-err)}.menu-backdrop{position:fixed;inset:0;z-index:50}.login-page{display:flex;height:100%;background:var(--c-bg)}.login-panel{flex:0 0 44%;background:var(--c-primary);color:var(--c-ink);display:flex;flex-direction:column;justify-content:center;padding:48px 52px}.login-panel .wordmark-lg{font-family:var(--font-mono);color:var(--c-ink);font-size:38px;letter-spacing:-1px}.login-panel-tagline{display:block;font-size:15px;margin-top:6px;color:#0c2233bf}.login-features{list-style:none;margin:34px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}.login-features li{display:flex;align-items:center;gap:12px;font-size:13.5px;font-weight:500}.login-features .dot{flex:none;width:12px;height:12px;border-radius:4px}.dot-c-pink{background:var(--c-err)}.dot-c-cyan{background:var(--c-serial)}.dot-c-amber{background:var(--c-warn)}.login-form-side{flex:1;display:grid;place-items:center;padding:24px;overflow-y:auto}.login-card{width:380px;max-width:100%;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:26px 26px 22px}.login-brand{text-align:center;margin-bottom:18px}.login-tagline{display:block;color:var(--c-text-2);font-size:12.5px;margin-top:4px}.canvas-infobar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:baseline;gap:8px;max-width:min(680px,72%);background:var(--c-surface);border:1px solid var(--c-border);border-left:4px solid var(--c-primary);border-radius:var(--r-sm);box-shadow:var(--shadow-card);padding:6px 12px;pointer-events:none}.canvas-infobar .infobar-label{font-weight:700;font-size:12px;color:var(--c-ink);white-space:nowrap}.canvas-infobar .infobar-desc{font-size:12px;color:var(--c-text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-infobar.is-hint{border-left-color:var(--c-border-strong)}.canvas-infobar.is-hint .infobar-label,.canvas-infobar.is-hint .infobar-desc{color:var(--c-text-3)}.auth-tabs{display:flex;border-bottom:2px solid var(--c-border);margin-bottom:18px}.auth-tab{flex:1;height:40px;border:none;background:transparent;color:var(--c-text-2);font-size:12.5px;font-weight:700;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .12s ease,border-color .12s ease}.auth-tab:hover{color:var(--c-ink)}.auth-tab.is-active{color:var(--c-ink);border-bottom-color:var(--c-primary-dark)}.auth-tab-disabled{display:flex;align-items:center;justify-content:center;height:40px;margin-bottom:18px;border-radius:var(--r-sm);background:var(--c-bg);border:1px dashed var(--c-border-strong);color:var(--c-text-3);font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;user-select:none}.app{display:grid;height:100%;grid-template-rows:var(--header-h) 1fr auto;grid-template-columns:1fr auto;grid-template-areas:"header header" "canvas ai" "terminal terminal"}.app.ai-collapsed{grid-template-columns:1fr 0}.app-header{grid-area:header}.canvas-area{grid-area:canvas;position:relative;min-width:0;min-height:0;background:var(--c-bg)}.ai-area{grid-area:ai;width:360px;min-width:0;transition:width .18s ease;overflow:hidden;border-left:1px solid var(--c-border);background:var(--c-surface)}.app.ai-collapsed .ai-area{width:0;border-left:none}.terminal-area{grid-area:terminal}.canvas-capability{position:absolute;top:12px;left:12px;z-index:10;display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 11px;border-radius:999px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text-2);font-size:11px;font-weight:600;box-shadow:var(--shadow-card);pointer-events:none}.canvas-capability.is-warn{color:#92400e;border-color:var(--c-warn);background:var(--c-warn-soft)}.canvas-capability .dot{width:8px;height:8px;border-radius:50%;background:var(--c-ok)}.canvas-capability.is-warn .dot{background:var(--c-warn)}.zoom-controls{position:absolute;right:16px;bottom:16px;z-index:10;display:flex;flex-direction:column;border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);box-shadow:var(--shadow-card);overflow:hidden}.zoom-controls button{display:grid;place-items:center;width:36px;height:34px;border:none;border-bottom:1px solid var(--c-border);background:transparent;color:var(--c-text);cursor:pointer}.zoom-controls button:last-child{border-bottom:none}.zoom-controls button:hover{background:var(--c-primary-light);color:var(--c-ink)}.blockly-container{position:absolute;inset:0}.blockly-container>div{width:100%;height:100%}.blocklyToolboxDiv{border-right:1px solid var(--c-border);box-shadow:none!important;background:var(--c-surface)!important}.blocklyToolboxCategory .blocklyTreeRow{border-radius:0;margin:0!important;padding:0 8px!important;height:34px}.blocklyFlyout{border-right:1px solid var(--c-border)}.terminal{display:flex;flex-direction:column;height:var(--terminal-h);background:#17222e;border-top:2px solid var(--c-primary);color:#d7dfe7;z-index:20}.terminal.is-collapsed{height:36px}.terminal-head{display:flex;align-items:center;gap:4px;height:36px;padding:0 10px;background:#121b25;border-bottom:1px solid #26343f;flex:none}.terminal-tab{height:26px;padding:0 12px;border:none;border-radius:var(--r-sm);background:transparent;color:#8aa2b2;font-size:11.5px;font-weight:700;cursor:pointer}.terminal-tab:hover{color:#d7dfe7}.terminal-tab.is-active{background:var(--c-primary);color:var(--c-ink)}.terminal-status{display:flex;align-items:center;gap:8px;margin-left:14px;font-size:11.5px;color:#8aa2b2;font-family:var(--font-mono)}.terminal-status .state-ok{color:#34d399}.terminal-status .state-err{color:#f87171}.terminal-tools{margin-left:auto;display:flex;align-items:center;gap:6px}.terminal-tools .btn{height:26px;padding:0 9px;font-size:11px;background:transparent;border-color:#26343f;color:#a3b8c6}.terminal-tools .btn:hover{background:#ffffff12;color:#fff}.terminal-body{flex:1;overflow-y:auto;padding:8px 12px;font-family:var(--font-mono);font-size:12.5px;line-height:1.55;user-select:text}.terminal-body::-webkit-scrollbar{width:10px}.terminal-body::-webkit-scrollbar-thumb{background:#33475a;border-radius:5px}.terminal-line{white-space:pre-wrap;word-break:break-word;color:#cfdae3}.terminal-line .line-ts{color:#5d7285;margin-right:8px;user-select:none}.terminal-line.level-ok{color:#34d399}.terminal-line.level-warn{color:#fbbf24}.terminal-line.level-err{color:#f87171}.terminal-line.level-flash{color:#6cb8e4}.terminal-line.level-serial{color:#8ecdf0}.terminal-progress{display:flex;align-items:center;gap:10px;padding:0 12px;height:30px;flex:none;background:#121b25;font-family:var(--font-mono);font-size:11.5px;color:#6cb8e4}.terminal-progress-bar{position:relative;flex:1;height:6px;border-radius:3px;background:#26343f;overflow:hidden}.terminal-progress-bar>span{position:absolute;inset:0 auto 0 0;background:var(--c-primary);transition:width .15s ease}.terminal-inputrow{display:flex;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid #26343f;flex:none}.terminal-inputrow input{flex:1;height:30px;padding:0 10px;border:1px solid #33475a;border-radius:var(--r-sm);background:#121b25;color:#e8edf1;font-family:var(--font-mono);font-size:12.5px}.terminal-inputrow input:focus{outline:none;border-color:var(--c-primary)}.terminal-inputrow select{height:30px;background:#121b25;color:#a3b8c6;border:1px solid #26343f;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:12px}.ai-panel{display:flex;flex-direction:column;height:100%}.ai-head{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-bottom:1px solid var(--c-border);flex:none;background:var(--c-primary-light)}.ai-head-title{font-size:12.5px;font-weight:800;letter-spacing:.4px;color:var(--c-ink)}.ai-head-model{font-size:10.5px;color:var(--c-primary-dark);font-family:var(--font-mono);background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:999px;padding:2px 8px}.ai-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.ai-msg{max-width:92%;border-radius:var(--r-md);padding:10px 12px;font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.ai-msg.user{align-self:flex-end;background:var(--c-primary-deep);color:#fff}.ai-msg.assistant{align-self:flex-start;background:#f2f8fc;border:1px solid var(--c-border)}.ai-msg.assistant.is-error{background:var(--c-err-soft);border-color:var(--c-err);color:#b91c1c}.ai-tools{align-self:flex-start;display:flex;flex-wrap:wrap;gap:5px;max-width:92%}.ai-tool-chip{display:inline-flex;align-items:center;gap:5px;height:21px;padding:0 8px;border-radius:999px;background:var(--c-primary-deep);color:#fff;font-size:10.5px;font-weight:700;font-family:var(--font-mono)}.ai-tool-chip.is-fail{background:var(--c-err)}.ai-empty{margin:auto;max-width:260px;text-align:center;color:var(--c-text-2);font-size:12.5px;line-height:1.6}.ai-empty svg{color:var(--c-primary-dark);margin-bottom:8px}.ai-composer{flex:none;display:flex;gap:8px;padding:12px;border-top:1px solid var(--c-border)}.ai-composer textarea{flex:1;resize:none;height:44px;padding:9px 11px;border:1px solid var(--c-border-strong);border-radius:var(--r-md);font-family:inherit;font-size:12.5px;line-height:1.45;color:var(--c-text);background:var(--c-surface)}.ai-composer textarea:focus{outline:none;border-color:var(--c-primary-dark);box-shadow:0 0 0 3px #2e7cab26}.ai-composer button{width:44px;height:44px;border:none;border-radius:var(--r-md);background:var(--c-primary-deep);color:#fff;display:grid;place-items:center;cursor:pointer}.ai-composer button:hover{background:#1c6a99}.ai-composer button:disabled{opacity:.45;cursor:not-allowed}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#0c223373;display:grid;place-items:center;padding:24px}.modal{width:460px;max-width:100%;max-height:86vh;overflow:hidden;display:flex;flex-direction:column;background:var(--c-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-pop)}.modal.is-wide{width:760px}.modal-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--c-border);flex:none}.modal-title{font-size:15px;font-weight:700;flex:1}.modal-x{display:grid;place-items:center;width:28px;height:28px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--c-text-2);cursor:pointer}.modal-x:hover{background:var(--c-primary-light);color:var(--c-primary-dark)}.modal-body{padding:18px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--c-border);background:var(--c-bg);flex:none}.field{margin-bottom:14px}.field-label{display:flex;justify-content:space-between;align-items:baseline;font-size:11.5px;font-weight:700;color:var(--c-text-2);margin-bottom:6px}.field-hint{font-weight:400;color:var(--c-text-3);font-size:10.5px}.field-row{display:flex;gap:8px}.field input[type=text],.field input[type=password],.field input[type=email],.field select,.field input[type=number]{width:100%;height:38px;padding:0 11px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);font-family:inherit;font-size:13px;color:var(--c-text);background:var(--c-surface)}.field input:focus,.field select:focus{outline:none;border-color:var(--c-primary-dark);box-shadow:0 0 0 3px #2e7cab26}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.field-note{font-size:11.5px;color:var(--c-text-2);line-height:1.5;margin-top:6px}.test-result,.form-error{font-size:12px;margin-top:8px;padding:8px 10px;border-radius:var(--r-sm)}.test-result.ok,.form-error.ok{background:var(--c-ok-soft);color:#047857}.test-result.err,.form-error.err{background:var(--c-err-soft);color:#b91c1c}.home-page{display:flex;flex-direction:column;height:100%;background:var(--c-bg)}.home-head{flex:none}.home-body{flex:1;overflow-y:auto;padding:0 0 40px}.home-hero{position:relative;background:var(--c-primary);color:var(--c-ink);padding:30px 34px 34px;overflow:hidden}.home-hero-inner{position:relative;z-index:1;max-width:1100px;margin:0 auto}.home-hero h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.4px}.home-hero p{margin:6px 0 16px;font-size:13.5px;color:#0c2233bf}.quota-meter{display:flex;align-items:center;gap:12px;max-width:420px}.quota-meter-bar{position:relative;flex:1;height:8px;border-radius:4px;background:#0c223326;overflow:hidden}.quota-meter-bar>span{position:absolute;inset:0 auto 0 0;border-radius:4px;background:var(--c-ink);transition:width .3s ease}.quota-meter-text{font-size:11.5px;font-weight:600;font-family:var(--font-mono);white-space:nowrap}.home-hero-art{position:absolute;inset:0;pointer-events:none}.chip{position:absolute;border-radius:8px;opacity:.2}.chip-a{width:90px;height:34px;background:#fff;top:24px;right:18%;transform:rotate(-8deg)}.chip-b{width:64px;height:28px;background:var(--c-warn-soft);bottom:18px;right:30%;transform:rotate(10deg)}.chip-c{width:110px;height:30px;background:#fff;top:40px;right:7%;transform:rotate(6deg);opacity:.3}.chip-d{width:50px;height:50px;background:#fff;bottom:-10px;right:12%;border-radius:50%;opacity:.12}.home-error{max-width:1100px;margin:16px auto 0;padding:0 34px}.home-error.form-error{margin:16px auto 0;max-width:1032px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;max-width:1100px;margin:26px auto 0;padding:0 34px}.project-card{position:relative;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow-card);overflow:hidden;text-align:left;transition:border-color .14s ease,box-shadow .14s ease}div.project-card:hover{border-color:var(--c-primary-dark);box-shadow:var(--shadow-pop)}.card-accent{height:4px;background:var(--c-primary)}.project-card.a-pink .card-accent{background:#e0709b}.project-card.a-cyan .card-accent{background:#4bb3c9}.project-card.a-amber .card-accent{background:#e0a04b}.project-card.a-violet .card-accent{background:var(--c-primary)}.project-card.a-green .card-accent{background:var(--c-ok)}.card-body{padding:14px 16px 16px}.card-title{font-size:14.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{margin:5px 0 12px}.card-actions{display:flex;gap:6px;align-items:center}.card-actions .btn-primary{height:28px;padding:0 11px;font-size:11.5px}.new-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:132px;border:1.5px dashed var(--c-border-strong);border-radius:var(--r-md);background:transparent;cursor:pointer;padding:16px;font-family:inherit;transition:border-color .14s ease,background .14s ease}.new-card:hover{border-color:var(--c-primary-dark);background:var(--c-primary-light)}.new-card-plus{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--c-primary-light);color:var(--c-primary-dark)}.new-card-title{font-size:14px;font-weight:700;color:var(--c-text)}.new-card-sub{font-size:11.5px;color:var(--c-text-2)}.home-empty{max-width:1100px;margin:30px auto;padding:0 34px;text-align:center;color:var(--c-text-2);font-size:13px;line-height:1.6}.home-empty svg{color:var(--c-primary-dark)}.admin-table{width:100%;border-collapse:collapse;font-size:12.5px}.admin-table th{text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--c-text-2);padding:8px 10px;border-bottom:2px solid var(--c-border);white-space:nowrap}.admin-table td{padding:9px 10px;border-bottom:1px solid var(--c-border);vertical-align:middle}.admin-table tr:hover td{background:var(--c-primary-light)}.mono{font-family:var(--font-mono);font-size:11.5px;color:var(--c-text-2)}.quota-input{width:84px;height:30px;padding:0 8px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);font-family:inherit;font-size:12.5px}.badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;border-radius:999px}.badge.ok{background:var(--c-ok-soft);color:#047857}.badge.err{background:var(--c-err-soft);color:#b91c1c}.badge.info{background:var(--c-primary-light);color:var(--c-primary-dark)}.admin-shell{display:flex;flex-direction:column;height:100%;background:var(--c-bg)}.admin-head{display:flex;align-items:center;gap:12px;height:var(--header-h);padding:0 14px;background:var(--c-primary);color:var(--c-ink);flex:none}.admin-title{font-size:16px;font-weight:700;letter-spacing:.3px}.admin-head .btn{background:#0c223314;border-color:transparent;color:var(--c-ink)}.admin-head .btn:hover{background:#0c223329;color:var(--c-ink)}.admin-head .btn-primary{background:var(--c-ink);color:#fff;border-color:transparent}.admin-head .btn-primary:hover{color:#fff;background:#16344c}.admin-body{flex:1;overflow-y:auto;padding:22px}.admin-card{max-width:980px;margin:0 auto;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow-card);overflow:hidden}.admin-card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--c-border)}.admin-card-title{font-size:14px;font-weight:700}.admin-empty{padding:40px;text-align:center;color:var(--c-text-2);font-size:13px}.code-view{margin:0;padding:14px 16px;background:#17222e;color:#c8d4de;font-family:var(--font-mono);font-size:12px;line-height:1.55;overflow:auto;white-space:pre;user-select:text}.diag-list{margin:0 0 12px;padding:0;list-style:none}.diag-list li{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border-radius:var(--r-sm);font-size:12.5px;margin-bottom:6px}.diag-list li.warn{background:var(--c-warn-soft);color:#92400e}.diag-list li.err{background:var(--c-err-soft);color:#b91c1c}.ai-log::-webkit-scrollbar,.modal-body::-webkit-scrollbar,.admin-body::-webkit-scrollbar,.home-body::-webkit-scrollbar{width:10px}.ai-log::-webkit-scrollbar-thumb,.modal-body::-webkit-scrollbar-thumb,.admin-body::-webkit-scrollbar-thumb,.home-body::-webkit-scrollbar-thumb{background:var(--c-border-strong);border-radius:5px;border:2px solid var(--c-surface)}.bulk-input{width:100%;resize:vertical;font-family:var(--font-mono, monospace);font-size:13px;padding:10px 12px;border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-text)}.print-header{font-size:13px;margin-bottom:10px}.credential-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.credential-card{border:1px dashed var(--c-border-strong);padding:14px 16px;break-inside:avoid;page-break-inside:avoid}.credential-org{font-weight:700;font-size:13px;margin-bottom:8px}.credential-row{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;padding:2px 0}.credential-row span{color:var(--c-text-2)}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;inset:0;padding:12px}.credential-card{border:1px dashed #333}}.login-legal{text-align:center;margin-top:16px;font-size:11.5px;color:var(--c-text-3)}.login-legal a{color:var(--c-text-2);text-decoration:none}.login-legal a:hover{color:var(--c-primary-dark);text-decoration:underline}.home-legal{max-width:1100px;margin:26px auto 0;padding:0 34px;font-size:11.5px;color:var(--c-text-3)}.home-legal a{color:var(--c-text-2);text-decoration:none}.home-legal a:hover{color:var(--c-primary-dark);text-decoration:underline}.save-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;border:1px solid transparent}.save-chip.dirty{color:#8a5a00;background:#fdf3e0;border-color:#f0dcb0}.save-chip.saving{color:var(--c-text-2);background:var(--c-surface-2, #eef4f9);border-color:#d8e4ee}.save-chip.saved{color:#1d6b3c;background:#e5f4ea;border-color:#c2e3cd}.save-chip.error{color:#a03030;background:#fbe9e9;border-color:#efc9c9}
