:root{--navy: #1b2a4a;--navy-soft: #2a3d63;--teal: #0e7c7b;--ink: #16202f;--muted: #5d6b7f;--line: #e2e7ee;--paper: #ffffff;--wash: #f6f8fb;--display: "Fraunces", Georgia, serif;--body: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--body);font-weight:300;color:var(--ink);background:var(--wash);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--display);font-weight:600;color:var(--navy);margin:0 0 .5rem;line-height:1.15}h1{font-size:2rem}h2{font-size:1.375rem}h3{font-size:1.0625rem}p{line-height:1.6;margin:0 0 1rem}a{color:var(--teal)}.eyebrow{font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 .35rem}.muted{color:var(--muted)}.small{font-size:.875rem}.shell{display:flex;min-height:100%}.sidebar{width:232px;flex:0 0 232px;background:var(--navy);color:#fff;padding:1.5rem 1rem;display:flex;flex-direction:column}.brand{font-family:var(--display);font-size:1.125rem;font-weight:600;line-height:1.1}.brand span{display:block;font-family:var(--body);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;opacity:.65;margin-top:.2rem}.nav{margin-top:2rem;display:flex;flex-direction:column;gap:.15rem}.nav a{color:#ffffffc7;text-decoration:none;padding:.55rem .7rem;border-radius:7px;font-size:.9375rem}.nav a:hover{background:#ffffff14;color:#fff}.nav a.active{background:var(--teal);color:#fff}.sidebar-foot{margin-top:auto;font-size:.8125rem;opacity:.7}.sidebar-foot button{background:none;border:0;color:#fffc;padding:0;cursor:pointer;font:inherit;text-decoration:underline}.main{flex:1;padding:2.25rem 2.5rem;max-width:1080px}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1.25rem}.grid{display:grid;gap:1rem}.grid-3{grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}.grid-2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.tool-card{border-top:4px solid var(--teal);text-decoration:none;color:inherit;display:block}.tool-card:hover{border-color:var(--line);box-shadow:0 4px 14px #1b2a4a14}.tool-card h3{margin-bottom:.15rem}label{display:block;font-size:.8125rem;font-weight:500;color:var(--navy);margin:0 0 .3rem}input,textarea,select{width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid var(--teal);outline-offset:-1px;border-color:var(--teal)}textarea{min-height:74px;resize:vertical}.field{margin-bottom:.9rem}.row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}button.btn{background:var(--teal);color:#fff;border:0;border-radius:8px;padding:.62rem 1.1rem;font:inherit;font-weight:500;cursor:pointer}button.btn:hover{background:#0b6362}button.btn:disabled{opacity:.55;cursor:default}button.btn.ghost{background:transparent;color:var(--teal);border:1px solid var(--teal)}button.btn.ghost:hover{background:#0e7c7b14}.pill{display:inline-block;font-size:.75rem;font-weight:500;padding:.15rem .55rem;border-radius:999px;background:var(--wash);color:var(--muted);border:1px solid var(--line)}.pill.on{background:#0e7c7b1a;color:var(--teal);border-color:#0e7c7b4d}.pill.due{background:#f4433617;color:#b3261e;border-color:#f443364d}.list{list-style:none;margin:0;padding:0}.list li{border-bottom:1px solid var(--line);padding:.8rem 0}.list li:last-child{border-bottom:0}.timeline{list-style:none;margin:0;padding:0 0 0 1.1rem;border-left:2px solid var(--line)}.timeline li{position:relative;padding:0 0 1.4rem 1rem}.timeline li:before{content:"";position:absolute;left:-1.42rem;top:.45rem;width:10px;height:10px;border-radius:50%;background:var(--teal);border:2px solid #fff}.notice{border-radius:10px;padding:.85rem 1rem;font-size:.9375rem}.notice.info{background:#0e7c7b14;color:#0b5a59}.notice.warn{background:#ff98001f;color:#8a5300}.stack>*+*{margin-top:1.25rem}.between{display:flex;align-items:center;justify-content:space-between;gap:1rem}.login-wrap{min-height:100%;display:grid;place-items:center;padding:2rem}.login-card{width:100%;max-width:400px}@media (max-width: 760px){.shell{flex-direction:column}.sidebar{width:100%;flex:none}.nav{flex-direction:row;flex-wrap:wrap;margin-top:1rem}.main{padding:1.5rem 1.15rem}.row{grid-template-columns:1fr}}
