@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Nunito+Sans:wght@400;600;700&display=swap');
:root{--forest:#1f3a33;--forest2:#2c4a40;--terra:#c0704f;--cream:#faf8f3;--sand:#efe9df;--ink:#24302c;--muted:#6b756f;--line:#e2dbcf}
*{box-sizing:border-box}body{margin:0;font-family:'Nunito Sans',system-ui,sans-serif;color:var(--ink);background:var(--cream);display:flex;min-height:100vh}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;color:var(--forest);margin:.2em 0 .5em}h1{font-size:2rem}h2{font-size:1.25rem}
a{color:var(--forest)}code{background:var(--sand);padding:1px 5px;border-radius:4px}
.side{width:250px;background:var(--forest);color:#e9efe9;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}
.brand{display:block;background:var(--cream);border-radius:12px;padding:10px;text-align:center;text-decoration:none;margin-bottom:14px}.brand img{max-width:150px}.brand span{display:block;font-family:Fraunces,serif;color:var(--terra);font-weight:600}
.side nav a{display:block;color:#dfe8e2;text-decoration:none;padding:7px 10px;border-radius:8px;font-size:.93rem}.side nav a:hover{background:var(--forest2)}.side nav a.on{background:var(--terra);color:#fff}
.side hr{border:0;border-top:1px solid #3d5c51;margin:8px 0}.who{margin-top:auto;padding-top:14px;font-size:.88rem;border-top:1px solid #3d5c51}.who small{opacity:.7}
.main{flex:1;padding:28px 36px;max-width:1200px}.center{flex:1;display:grid;place-items:center;background:linear-gradient(135deg,var(--forest),#3a5a4c)}
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.eyebrow{color:var(--terra);font-weight:700;margin:0;font-size:.9rem}.eyebrow a{color:var(--terra);text-decoration:none}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin:16px 0;box-shadow:0 1px 3px #1f3a3310}
.login{width:380px;text-align:center}.login .logo{width:200px}.dev-login{margin-top:18px;border-top:1px dashed var(--line);padding-top:12px}.dev-login input{width:100%;margin:6px 0 10px}
.btn{display:inline-block;background:var(--forest);color:#fff;border:0;border-radius:10px;padding:10px 18px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}.btn:hover{background:var(--forest2)}
.btn.alt{background:var(--terra)}.btn.danger{background:#a3402e}.link{background:none;border:0;color:#f3c9b5;padding:0;margin-top:6px;cursor:pointer;font:inherit}
.dev{color:var(--terra);font-size:.85rem;font-weight:700}.err{color:#a3402e;font-weight:700}.muted{color:var(--muted)}.empty{font-style:italic}
.stats{display:flex;gap:14px;flex-wrap:wrap}.stat{flex:1;min-width:140px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;text-decoration:none}.stat b{display:block;font-family:Fraunces,serif;font-size:2rem;color:var(--forest)}.stat span{color:var(--muted)}.stat.warn b{color:#a3402e}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.tile{background:var(--sand);border-radius:12px;padding:14px;text-decoration:none;color:var(--ink)}.tile b{display:block;color:var(--forest)}.tile span{font-size:.85rem;color:var(--muted)}a.tile:hover{background:#e7dfd1}
table.items{width:100%;border-collapse:collapse;font-size:.93rem}.items th{text-align:left;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:6px}.items td{padding:8px 6px;border-bottom:1px solid #f0ebe3;vertical-align:top}.sub{font-size:.8rem;color:var(--muted)}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.78rem;font-weight:700;background:var(--sand);color:var(--forest)}.pill.in-progress{background:#f6dfd2;color:#8d4529}.pill.done{background:#d8e8dd;color:#24533f}
.ex{display:inline-block;font-size:.7rem;font-weight:700;color:#8d4529;border:1px dashed var(--terra);border-radius:6px;padding:0 6px;margin-left:4px}
.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.form .wide{grid-column:1/-1}.form label{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;color:var(--muted);gap:4px}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fffdf9;color:var(--ink)}
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}.col{background:var(--sand);border-radius:14px;padding:12px;min-height:300px}.col h2 small{color:var(--muted);font-family:'Nunito Sans';font-size:.85rem}
.drop{min-height:240px;display:flex;flex-direction:column;gap:10px}.drop.over{outline:2px dashed var(--terra);border-radius:10px}
.kcard{background:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 1px 3px #0001;cursor:grab}.kcard a{font-weight:700;text-decoration:none}.kcard.dragging{opacity:.4}
.meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.78rem;color:var(--muted);margin-top:6px}.tag{background:#e3ece6;color:var(--forest);border-radius:6px;padding:0 6px}
.cal{width:100%;border:0;border-radius:10px}
@media(max-width:800px){body{flex-direction:column}.side{width:100%;height:auto;position:static}.main{padding:16px}.kanban{grid-template-columns:1fr}}
.ml-form{display:flex;flex-direction:column;gap:10px;margin-top:10px;text-align:left}.ml-form .btn{align-self:center}
