@charset "UTF-8";
:root{--ink:#172922;--muted:#718078;--green:#235541;--lime:#c6e682;--line:#e2e7e1;--paper:#f5f6f2;--white:#fff;--red:#af443a}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:"Microsoft YaHei UI","Segoe UI",sans-serif;font-size:14px;background:var(--paper)}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;border-radius:7px;padding:11px 17px;transition:background .15s,transform .15s}button:disabled{opacity:.5;cursor:wait}button:hover{filter:brightness(.96)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #759b52;outline-offset:3px}.primary{background:var(--green);color:white;display:inline-flex;justify-content:space-between;align-items:center;gap:25px}.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.text-button{background:transparent;color:var(--muted);padding:6px 10px}.danger{color:var(--red);background:#fcf0ec}.muted{color:var(--muted);line-height:1.7}.eyebrow{font-family:Consolas,monospace;letter-spacing:2px;font-size:11px;color:var(--green)}.wordmark{color:inherit;text-decoration:none;font-family:Georgia,serif;letter-spacing:-3px;font-size:38px;font-weight:bold;white-space:nowrap}.wordmark span{font:10px Consolas,monospace;letter-spacing:2px;margin-left:13px}.login-art{position:relative;overflow:hidden;background:#183f31;color:#fff;padding:48px 58px;min-height:100vh}.login-art .wordmark span{color:#c6e682}.login-art h1{position:relative;margin-top:27vh;font-size:66px;line-height:1.25;letter-spacing:2px;font-weight:500}.login-art h1 span{color:var(--lime)}.login-art p{position:absolute;bottom:48px;color:#adbcad;font:11px Consolas,monospace;letter-spacing:2px}.art-lines{position:absolute;width:700px;height:700px;border:1px solid #456b50;border-radius:50%;top:13%;left:36%}.art-lines:before,.art-lines:after{content:"";position:absolute;inset:70px;border:1px solid #456b50;border-radius:50%}.art-lines:after{inset:140px}#login{display:grid;grid-template-columns:1.05fr 1fr}.login-form{width:380px;max-width:85%;justify-self:center;align-self:center}.login-form h2{font-size:29px;font-weight:500;margin-top:22px}.login-form label{margin-top:22px}.login-form .primary{width:100%;margin-top:32px}.login-form small{display:block;color:var(--muted);margin-top:50px;font-size:11px}#loginError{color:var(--red)}label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#506259}input,select,textarea{border:1px solid #d9e1d8;background:white;padding:11px 12px;border-radius:6px;color:var(--ink);min-width:0;width:100%}textarea{resize:vertical;line-height:1.7;min-height:140px;font-family:Consolas,"Microsoft YaHei",monospace;font-size:13px}#shell{display:flex;min-height:100vh}aside{width:230px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:30px 20px;display:flex;flex-direction:column}.workspace-label{border:1px solid var(--line);border-radius:6px;font-size:12px;padding:12px;margin:28px 0 23px;display:flex;justify-content:space-between}.workspace-label span{font:9px Consolas;color:var(--green);background:#e8f1df;padding:3px 4px}nav h3{font-size:10px;color:#9ba59d;font-weight:400;letter-spacing:2px;margin:24px 10px 9px}nav button{display:flex;text-align:left;align-items:center;gap:13px;width:100%;padding:12px 14px;background:none;color:#607268;margin:2px 0}nav button b{font-size:15px;font-weight:400;width:18px}nav button.active{background:#eaf1e7;color:#235541;font-weight:bold}nav button.active:after{content:"";width:5px;height:5px;background:var(--green);border-radius:50%;margin-left:auto}.aside-bottom{margin-top:auto;font-size:11px;color:var(--muted);padding-top:30px}.status-dot{display:inline-block;width:6px;height:6px;background:#5d9866;border-radius:50%;margin-right:8px}.aside-bottom button{background:none;display:block;margin-top:18px;padding-left:0;color:#718078;font-size:12px}main{margin-left:230px;flex:1;min-width:0}header{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;font-size:12px;color:var(--muted);background:#fafbf8}header>div{display:flex;align-items:center;gap:18px}.avatar{background:#e7ecdf;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-family:Georgia;color:var(--green)}.page{padding:39px 38px;min-height:calc(100vh - 135px)}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:29px}.page-head h1{font-size:28px;letter-spacing:1px;font-weight:500;margin:12px 0 8px}.page-head p{margin:0;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{border:1px solid var(--line);border-radius:9px;background:white;padding:22px}.stat>span{font-size:12px;color:var(--muted)}.stat strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:39px;margin:20px 0 12px}.stat small{font-size:11px;color:#8b988f}.stat.featured{background:#244e3c;color:white;border-color:#244e3c}.stat.featured span,.stat.featured small{color:#c4d2c0}.stat.featured strong{color:var(--lime)}.panel{background:#fff;border:1px solid var(--line);border-radius:9px;margin-top:23px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:20px 23px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:15px;font-weight:500;margin:0}.panel-head small{color:var(--muted);font-size:11px}.panel-body{padding:23px}.section-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.section-grid .panel{height:100%}.notice{background:#ecf1e6;border-left:3px solid #799a5a;color:#526448;padding:14px 18px;font-size:12px;line-height:1.7;margin-bottom:22px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:left;background:#fafbf8;color:#819086;font-weight:400;padding:14px 22px;border-bottom:1px solid var(--line)}td{padding:17px 22px;border-bottom:1px solid #eff2ec;max-width:380px;overflow:hidden;text-overflow:ellipsis}tr:last-child td{border-bottom:0}td button{padding:5px 9px;background:#edf1e8;color:var(--green);font-size:11px;margin-right:5px}.tag{display:inline-block;padding:4px 9px;background:#eaf3e8;color:#477344;border-radius:4px;font-size:11px}.tag.warn{background:#fff2d5;color:#956f16}.tag.bad{background:#faece6;color:#ae5b42}.mono{font-family:Consolas,monospace;color:#5b6b60}.empty{padding:70px 25px;text-align:center;color:var(--muted);font-size:13px}.empty b{display:block;font-family:Georgia;font-size:32px;color:#c1cebd;margin-bottom:16px}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}.toolbar input{max-width:300px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-form .full{grid-column:1/-1}.form-note{font-size:11px;line-height:1.7;color:var(--muted);margin:10px 0 0}.config-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px}.template-editor{min-height:420px}.bar-row{display:grid;grid-template-columns:60px 1fr 36px;gap:15px;align-items:center;margin:24px 0;font-size:12px}.bar{height:7px;background:#eef1e9;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:#8bb06b;border-radius:4px}.quick-link{padding:20px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;align-items:center}.quick-link:last-child{border:0}.quick-link h3{font-size:13px;font-weight:500;margin:0 0 7px}.quick-link p{font-size:11px;color:var(--muted);margin:0}.quick-link button{background:#edf2e6;color:#496338;font-size:18px;padding:5px 11px}footer{display:flex;justify-content:space-between;margin:0 38px;padding:20px 0;border-top:1px solid var(--line);font:9px Consolas,monospace;letter-spacing:1px;color:#94a08f}footer span{font:10px "Microsoft YaHei UI",sans-serif;letter-spacing:0}dialog{width:650px;max-width:92vw;border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:0 30px 100px #0c2b262d;color:var(--ink)}dialog::backdrop{background:#132b2355;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.modal-head h2{font-size:20px;font-weight:500;margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}#modalBody>label{margin:16px 0}#toast{position:fixed;right:28px;bottom:28px;z-index:20;background:#203f30;color:white;border-radius:8px;padding:15px 22px;box-shadow:0 10px 30px #19362426;max-width:500px;line-height:1.5}pre{white-space:pre-wrap;word-break:break-word;max-height:55vh;overflow:auto;line-height:1.7;font-size:12px}.login-form,.page{animation:arrive .35s ease-out}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:1050px){aside{width:195px}main{margin-left:195px}.stats{grid-template-columns:repeat(2,1fr)}.section-grid{grid-template-columns:1fr}.page{padding:25px}.page-head{gap:15px}header{padding:0 25px}}@media(max-width:700px){.login-art{display:none}#login{display:flex;min-height:100vh;justify-content:center}.login-form{align-self:center}aside{position:static;width:100%;padding:16px}#shell{display:block}aside>.wordmark{font-size:30px}.workspace-label,.aside-bottom,nav h3{display:none}nav{display:flex;overflow:auto;margin-top:10px}nav button{white-space:nowrap;width:auto;padding:10px}nav button b{display:none}main{margin:0}header{height:55px}.page{padding:22px 16px}.page-head h1{font-size:24px}.grid-form{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:17px}.stat strong{font-size:31px}.page-head .secondary{font-size:11px;padding:8px}.avatar{display:none}footer{margin:0 16px}footer span{display:none}}

/* Collapsible navigation, shared by the browser console and desktop workspace. */
aside{overflow-y:auto;overflow-x:hidden}.sidebar-toggle{align-self:flex-end;flex-shrink:0;background:#edf2e8;color:#315a42;font-size:19px;line-height:1;padding:5px 10px;margin-bottom:12px;border:1px solid #dce5d6}.nav-label{white-space:nowrap}#shell.sidebar-collapsed aside{width:76px;padding:24px 12px}#shell.sidebar-collapsed main{margin-left:76px}#shell.sidebar-collapsed .wordmark{font-size:20px;letter-spacing:-2px}#shell.sidebar-collapsed .wordmark span,#shell.sidebar-collapsed .workspace-label,#shell.sidebar-collapsed nav h3,#shell.sidebar-collapsed .nav-label,#shell.sidebar-collapsed .aside-bottom{display:none}#shell.sidebar-collapsed nav{margin-top:24px}#shell.sidebar-collapsed nav button{justify-content:center;padding:14px 9px;gap:0}#shell.sidebar-collapsed nav button b{font-size:18px;width:24px;text-align:center}#shell.sidebar-collapsed nav button.active:after{display:none}.list-tabs{display:flex;gap:8px;flex-wrap:wrap}.list-tabs button{background:#eaf0e3;color:#3b6047;font-size:12px}td button.danger{color:var(--red);background:#f9ece8}.pack-choice{width:auto}.resource-card pre{max-height:45vh}#modalBody .template-editor{min-height:300px}@media(max-width:700px){.sidebar-toggle{margin-bottom:0;position:absolute;right:15px;top:16px}#shell.sidebar-collapsed aside{width:100%;padding:16px}#shell.sidebar-collapsed main{margin-left:0}#shell.sidebar-collapsed nav{margin-top:10px}#shell.sidebar-collapsed nav button b{display:block}#shell.sidebar-collapsed .wordmark{font-size:30px}}

.inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}#generatedCodes{font-family:Consolas,monospace;letter-spacing:1px;min-height:135px}.inline-actions .secondary{font-size:12px}
