:root{--ink:#13211d;--paper:#f5f7f4;--panel:#fff;--line:#dce4df;--green:#174f3b;--green2:#247052;--gold:#c9a85d;--muted:#66736d;--danger:#a73535;--shadow:0 18px 55px rgba(18,40,31,.10)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,textarea{font:inherit}button{border:0;border-radius:10px;background:var(--green);color:#fff;padding:.78rem 1.05rem;font-weight:700;cursor:pointer}button:hover{background:var(--green2)}button:disabled{opacity:.55;cursor:not-allowed}.secondary{background:#e8eeea;color:var(--ink)}.text-button{background:transparent;color:var(--muted);padding:.4rem 0}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#e4eee7,transparent 36%),var(--paper)}.login-card{width:min(430px,100%);background:var(--panel);padding:42px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.mark{width:58px;height:58px;border-radius:15px;background:var(--green);color:#fff;display:grid;place-items:center;font:bold 17px Georgia,serif;letter-spacing:.08em;box-shadow:inset 0 -3px 0 var(--gold)}.mark.small{width:40px;height:40px;border-radius:11px;font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--green2);font-size:.75rem;font-weight:800;margin:20px 0 6px}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.15;margin:.2em 0}.login-card h1{font-size:2.3rem}.muted{color:var(--muted)}label{display:grid;gap:6px;margin:18px 0;font-weight:650}input,textarea{width:100%;border:1px solid #bdc9c2;border-radius:10px;padding:.8rem;background:#fff;color:var(--ink)}input:focus,textarea:focus{outline:3px solid rgba(36,112,82,.16);border-color:var(--green2)}.login-card form button{width:100%;margin-top:8px}.error{color:var(--danger);min-height:1.2rem;font-size:.9rem}.app{min-height:100vh;display:grid;grid-template-columns:270px 1fr}aside{background:#102c23;color:#e8f1ed;padding:22px 16px;display:flex;flex-direction:column;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-weight:800}.brand .mark{background:#e7eee9;color:var(--green)}aside nav{display:grid;gap:7px;overflow:auto}aside nav button{text-align:left;background:transparent;color:#d5e2dc;font-weight:500}aside nav button.active,aside nav button:hover{background:rgba(255,255,255,.1)}.aside-foot{margin-top:auto;display:grid;gap:10px}.aside-foot a{color:#d9b968}.workspace{min-width:0;display:grid;grid-template-rows:auto auto 1fr auto;height:100vh}.workspace>header{display:flex;justify-content:space-between;align-items:center;padding:20px 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.85)}.workspace header .eyebrow{margin:0}.allowance{text-align:right;color:var(--muted);font-size:.78rem}.allowance strong{display:block;color:var(--green);font-size:1rem}.checkpoint{padding:10px 28px;background:#e9f0ec;color:#375047;font-size:.9rem}.messages{padding:28px;overflow:auto;display:flex;flex-direction:column;gap:16px}.welcome{max-width:680px;margin:auto;padding:35px;text-align:center;color:var(--muted)}.welcome h3{color:var(--ink);font-size:1.7rem}.message{max-width:760px;padding:16px 18px;border-radius:16px;white-space:pre-wrap}.message.user{align-self:flex-end;background:var(--green);color:#fff;border-bottom-right-radius:4px}.message.assistant{align-self:flex-start;background:#fff;border:1px solid var(--line);box-shadow:0 6px 20px rgba(20,40,32,.05);border-bottom-left-radius:4px}.composer{border-top:1px solid var(--line);background:#fff;padding:16px 28px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.composer .error{grid-column:1/-1;margin:0}.composer textarea{resize:none}.admin{max-width:1200px;margin:auto;padding:30px}.admin>header,.panel-head{display:flex;justify-content:space-between;align-items:center}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.stat span{display:block;color:var(--muted);font-size:.8rem}.stat strong{font-size:1.35rem}.panel{margin:18px 0}.inline-form{display:grid;grid-template-columns:1fr 1.2fr 1.2fr auto;gap:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:.9rem}th{color:var(--muted)}.actions{display:flex;gap:6px}.actions button{padding:.45rem .65rem;font-size:.78rem}@media(max-width:760px){.app{grid-template-columns:1fr}.app aside{display:none}.workspace>header,.messages,.composer{padding-left:16px;padding-right:16px}.summary-grid{grid-template-columns:1fr 1fr}.inline-form{grid-template-columns:1fr}.admin{padding:18px}.login-card{padding:28px}.workspace{height:100dvh}}
.starter-home{max-width:780px}.starter-home h1{color:var(--ink);font-size:2.15rem}.starter-home>p{max-width:690px;margin:16px auto 24px}.starter-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left}.starter-actions button{background:#fff;color:var(--green);border:1px solid #b9ccc2;min-height:76px;text-align:left;padding:16px}.starter-actions button:hover{background:#e8f1ec;border-color:var(--green2)}
@media(max-width:760px){.starter-home{padding:20px 0}.starter-home h1{font-size:1.75rem}.starter-actions{grid-template-columns:1fr}}
