:root{--dark:#2e1c41;--teal:#128178;--orange:#e8702a;--berry:#a92f6b;--panel:#f6f3ee;--ink:#2b2436;--muted:#6f687c;--line:#e3ddd4}*{box-sizing:border-box}body{color:var(--ink);background:#fff;margin:0;font-family:Segoe UI,system-ui,sans-serif}header.top{background:var(--dark);color:#fff;align-items:center;gap:2rem;padding:.7rem 1.4rem;display:flex}header.top .brand{font-size:1.05rem;font-weight:700}header.top .brand span{color:#c9b8dc;font-weight:400}header.top nav{gap:1.2rem;display:flex}header.top a{color:#efeaf4;font-size:.92rem;text-decoration:none}header.top a:hover{color:#fff;text-decoration:underline}main{max-width:1100px;margin:0 auto;padding:1.4rem}h1{margin:.2rem 0 1rem;font-size:1.35rem}h2{margin:1.4rem 0 .6rem;font-size:1.05rem}.cards{flex-wrap:wrap;gap:1rem;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:200px;padding:.9rem 1.2rem}.card .num{font-size:1.5rem;font-weight:700}.card .label{color:var(--muted);margin-top:.2rem;font-size:.8rem}.card.teal .num{color:var(--teal)}.card.orange .num{color:var(--orange)}.card.berry .num{color:var(--berry)}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.45rem .6rem}th{background:var(--panel);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.78rem}.right{text-align:right}.badge{color:#fff;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.badge.overdue{background:var(--berry)}.badge.due_soon{background:var(--orange)}.badge.later{background:var(--teal)}button,.btn{background:var(--teal);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:.45rem .9rem;font-size:.88rem}button.secondary{background:var(--dark)}button:disabled{opacity:.5;cursor:default}input,select{border:1px solid var(--line);border-radius:7px;padding:.4rem .55rem;font-size:.88rem}.row{flex-wrap:wrap;align-items:center;gap:.7rem;margin:.6rem 0;display:flex}.errors{background:#fdf0ee;border:1px solid #ecc;border-radius:8px;padding:.6rem .9rem;font-size:.85rem}.muted{color:var(--muted);font-size:.85rem}.small{font-size:.75rem}.user-menu{align-items:center;gap:.8rem;margin-left:auto;display:flex}.user-menu .who{color:#efeaf4;font-size:.85rem}.muted-inverse{color:#c9b8dc}.user-menu .logout{color:#efeaf4;background:0 0;border:1px solid #5a4a73;padding:.25rem .7rem;font-size:.8rem}.user-menu .logout:hover{background:#3d2a55}.login-wrap{justify-content:center;align-items:center;min-height:calc(100vh - 120px);display:flex}.login-card{background:var(--dark);color:#efeaf4;border-radius:14px;flex-direction:column;gap:.8rem;width:360px;padding:2.2rem 2.4rem;display:flex;box-shadow:0 10px 40px #2e1c4159}.login-card h1{color:#fff;text-align:center;margin:0;font-size:1.25rem}.login-card p{text-align:center;margin:0}.login-card label{color:#c9b8dc;flex-direction:column;gap:.25rem;font-size:.82rem;display:flex}.login-card input{color:#fff;background:#3d2a55;border:1px solid #5a4a73;padding:.55rem .7rem}.login-card input::placeholder{color:#8d7aa6}.login-card button{margin-top:.4rem;padding:.6rem;font-size:.95rem}.login-card .errors{color:#f3c9d9;background:#4a2335;border-color:#7a3a55}.logo-tile{background:#fff;border-radius:12px;width:fit-content;margin:0 auto .4rem;padding:.9rem 1.4rem;box-shadow:0 4px 18px #00000040}.logo-tile img{width:150px;height:auto;display:block}.signin-link{background:var(--teal);border-radius:7px;padding:.35rem .9rem;font-size:.88rem;color:#fff!important;text-decoration:none!important}header.top .brand{color:#fff;text-decoration:none}.landing section{margin:2.6rem 0}.landing .hero{background:linear-gradient(150deg, var(--dark) 0%, #45286a 55%, #6b2d74 100%);color:#fff;text-align:center;border-radius:18px;margin-top:1rem;padding:3rem 2rem 3.4rem}.landing .hero h1{margin:1.1rem 0 .8rem;font-size:2rem;line-height:1.25}.landing .hero-sub{color:#d9cce8;max-width:640px;margin:0 auto 1.6rem;font-size:1rem;line-height:1.55}.landing .hero-cta{background:var(--orange);color:#fff;border-radius:9px;padding:.7rem 1.5rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-block}.landing .hero-cta:hover{filter:brightness(1.08)}.sec-title{text-align:center;margin:0 0 .3rem;font-size:1.35rem}.sec-sub{text-align:center;color:var(--muted);margin:0 0 1.4rem}.landing .stats{justify-content:center;margin-top:1.2rem}.landing .stats .card{text-align:center;flex:200px;max-width:250px}.landing .card.purple .num{color:#6b2d74}.grid4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-top:1.2rem;display:grid}.grid5{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-top:1.2rem;display:grid}.feature,.engine{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem}.feature h3,.engine h3{color:var(--dark);margin:0 0 .4rem;font-size:.98rem}.feature p,.engine p{color:var(--muted);margin:0;font-size:.85rem;line-height:1.45}.who-tag{background:var(--teal);color:#fff;border-radius:999px;margin-bottom:.5rem;padding:.1rem .55rem;font-size:.7rem;display:inline-block}.band{background:var(--panel);border-radius:18px;padding:2rem 1.6rem}.band .engine{background:#fff}.chips{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1.2rem 0;display:flex}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.4rem 1rem;font-size:.88rem;font-weight:600}.ai-row{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:1rem;display:grid}.ai-card{background:var(--dark);color:#efeaf4;border-radius:12px;padding:1.2rem 1.3rem}.ai-card h3{color:#fff;margin:0 0 .4rem}.ai-card p{color:#c9b8dc;margin:0;font-size:.88rem;line-height:1.5}.security{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.5rem 2rem;max-width:760px;margin:1.2rem auto 0;padding:0;list-style:none;display:grid}.security li{padding-left:1.4rem;font-size:.92rem;position:relative}.security li:before{content:"✓";color:var(--teal);font-weight:700;position:absolute;left:0}.landing .closing{background:var(--dark);color:#fff;text-align:center;border-radius:18px;padding:2.6rem 1.6rem 2rem}.landing .closing h2{margin:0 0 1.2rem;font-size:1.5rem}.landing .closing footer{color:#c9b8dc;flex-direction:column;gap:.25rem;margin-top:2rem;font-size:.82rem;display:flex}.landing .closing footer strong{color:#efeaf4}.chat{flex-direction:column;gap:.6rem;min-height:200px;margin:1rem 0;display:flex}.bubble{white-space:pre-wrap;border-radius:12px;max-width:75%;padding:.6rem .9rem;font-size:.92rem;line-height:1.5}.bubble.user{background:var(--dark);color:#efeaf4;align-self:flex-end}.bubble.assistant{background:var(--panel);border:1px solid var(--line);align-self:flex-start}code{background:var(--panel);border-radius:4px;padding:.1rem .35rem;font-size:.85em}.admin-cell{white-space:nowrap}button.mini{background:var(--dark);margin-right:4px;padding:.2rem .55rem;font-size:.75rem}button.mini.danger{background:var(--berry)}.edit-card{background:var(--panel);border:1px solid var(--orange);border-radius:10px;margin:.8rem 0;padding:.8rem 1.1rem}.edit-card h2{margin:0 0 .5rem}.edit-card label{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.pager{justify-content:flex-end;align-items:center;gap:.5rem;margin:.7rem 0;display:flex}.pager button:disabled{opacity:.35}
