:root{--ink:#17201c;--muted:#66706b;--green:#1d573d;--cream:#f3f0e8;--line:#dcded8;--white:#fff;--danger:#8f2e2e}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--cream)}button,.button{border:0;border-radius:10px;background:var(--green);color:#fff;padding:13px 18px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}summary{list-style:none}.secondary{background:#e6ebe7;color:var(--green)}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.brand{padding:10vw;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,#153c2d,#1e5a40);color:#fff}.brand h1{font-size:clamp(42px,6vw,78px);line-height:1;margin:22px 0}.brand>p:last-child{max-width:520px;color:#d4e0d9}.mark{width:58px;height:58px;display:grid;place-items:center;border:1px solid #b6cbbf;border-radius:50%;font:700 28px Georgia}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:42px;box-shadow:0 18px 60px #17201c14}.login>.card{align-self:center;margin:8vw;max-width:520px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;color:#789184}.card h2,.card h1{margin:10px 0 28px}form{display:grid;gap:18px}label{display:grid;gap:7px;font-size:13px;font-weight:700}input,select{width:100%;border:1px solid var(--line);border-radius:9px;padding:12px;font:inherit;background:#fff}.error,.success,.notice{padding:12px 14px;border-radius:9px;margin:14px 0}.error{background:#fbeaea;color:var(--danger)}.success{background:#e8f5ed;color:var(--green)}small{display:block;margin-top:20px;color:var(--muted)}.setup{min-height:100vh;display:grid;place-items:center;padding:32px}.setup .card{width:min(680px,100%)}.two,.three{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.three{grid-template-columns:repeat(3,1fr)}.shell,.page{max-width:1240px;margin:auto;padding:38px 24px}.welcome{margin:54px 0 28px}.welcome p{color:var(--muted)}.welcome h1{font-size:42px;margin:5px 0}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid article{background:#fff;padding:24px;border:1px solid var(--line);border-radius:14px}.grid strong,.grid span{display:block}.grid strong{font-size:26px}.grid span{color:var(--muted);margin-top:8px}.appbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:38px;position:sticky;top:0;z-index:20}.logo{font-weight:900;color:var(--green);text-decoration:none;letter-spacing:.08em}.logo small{display:inline;margin:0;color:var(--muted);font-size:10px}.appbar nav{display:flex;gap:24px;flex:1}.appbar nav a,.linkbtn{color:var(--muted);text-decoration:none;font-weight:700;font-size:14px;background:none;padding:8px}.appbar nav a.active{color:var(--green)}.appbar form{display:block}.contextbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;gap:20px}.contextbar span,.contextbar strong{display:block}.contextbar span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.contextbar form{display:flex;gap:10px}.contextbar select{min-width:180px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.module-grid>a,.module-grid>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;text-decoration:none;color:var(--ink)}.module-grid b,.module-grid span{display:block}.module-grid span{color:var(--muted);margin-top:7px;font-size:14px}.disabled{opacity:.55}.pagehead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.pagehead h1{font-size:36px;margin:6px 0}.pagehead p{color:var(--muted)}.actions{display:flex;gap:10px}.actions details{position:relative}.popover{position:absolute;right:0;top:48px;width:330px;background:#fff;border:1px solid var(--line);box-shadow:0 20px 60px #17201c22;border-radius:14px;padding:20px;z-index:15}.popover.wide{width:min(720px,90vw)}.checks{display:flex;gap:18px;flex-wrap:wrap}.checks label{display:flex;align-items:center}.checks input{width:auto}.search{grid-template-columns:1fr auto;margin:20px 0}.tablewrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid #eceeea;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}td{font-size:14px}.empty{text-align:center;color:var(--muted);padding:44px}.pill{font-size:12px;padding:7px 10px}.pill.on{background:#e4f3e9;color:var(--green)}.pill.off{background:#f3e7e7;color:var(--danger)}.tablewrap form{display:block}.narrow{max-width:560px}.narrow small{margin:0}@media(max-width:800px){.login{grid-template-columns:1fr}.brand{display:none}.login>.card{margin:24px}.grid,.module-grid{grid-template-columns:1fr 1fr}.two,.three{grid-template-columns:1fr}.appbar nav{gap:8px}.contextbar,.pagehead{align-items:stretch;flex-direction:column}.contextbar form{display:grid}.actions{align-self:stretch}.popover{position:fixed;left:16px;right:16px;top:90px;width:auto}.grid{grid-template-columns:1fr 1fr}}
@import url('/assets/sprint04.css');
@import url('/assets/sprint05.css');
