:root { --ink:#19343a; --muted:#5b7278; --brand:#136b87; --brand-dark:#0c536b; --surface:#fff; --line:#dce7e9; --page:#f3f8f8; --ok:#16845b; --warn:#b67716; --high:#b33c42; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--page); font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; }
a { color:var(--brand-dark); }
.site-header { min-height:76px; padding:12px max(24px,calc((100vw - 1180px)/2)); color:#fff; background:var(--brand); display:flex; gap:28px; align-items:center; }
.brand { min-width:225px; display:grid; line-height:1.2; }.brand a { color:#fff; text-decoration:none; font-size:1.2rem; font-weight:750; }.brand span { color:#d5edf2; font-size:.82rem; margin-top:4px; }
nav { display:flex; gap:4px; flex:1; } nav a { color:#e8f7fa; padding:8px 10px; border-radius:7px; text-decoration:none; } nav a:hover { background:#ffffff1f; color:#fff; }
.account { display:flex; align-items:center; gap:12px; font-size:.9rem; }.account a { color:#fff; }.account form { margin:0; }.link-button { border:0; background:transparent; color:#fff; padding:5px; text-decoration:underline; cursor:pointer; font:inherit; }
.shell { max-width:1180px; margin:0 auto; padding:34px 24px 54px; }.page-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:24px; }.page-heading h1,.form-page h1,.auth-card h1 { margin:0; font-size:2rem; letter-spacing:-.035em; }.page-heading p:not(.eyebrow),.form-page p { margin:5px 0 0; color:var(--muted); }
.eyebrow { margin:0 0 5px; color:var(--brand); font-size:.8rem; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }.toolbar { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin:0 0 25px; padding:14px 16px; background:#e5f0f1; border-radius:10px; }.toolbar label,.stack label { display:grid; gap:5px; font-weight:650; font-size:.92rem; }
input,select,textarea,button,.button { font:inherit; } input,select,textarea { width:100%; padding:9px 10px; border:1px solid #b8cacc; border-radius:7px; color:var(--ink); background:#fff; } input:focus,select:focus,textarea:focus { outline:3px solid #9bd4df; border-color:var(--brand); }
button,.button { display:inline-flex; justify-content:center; align-items:center; min-height:39px; padding:8px 13px; color:var(--ink); background:#fff; border:1px solid #b7c7ca; border-radius:7px; text-decoration:none; cursor:pointer; font-weight:650; }.primary { border-color:var(--brand); background:var(--brand); color:#fff; }.primary:hover { background:var(--brand-dark); }.danger { color:#8f242b; border-color:#dcabb0; background:#fff8f8; }.danger:hover { background:#fee9ea; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 26px; }.cards article,.panel,.auth-card { background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:0 2px 4px #1b45470a; }.cards article { padding:18px; display:grid; gap:2px; }.cards span { color:var(--muted); font-size:.9rem; }.cards strong { font-size:1.65rem; letter-spacing:-.04em; }.cards small { color:var(--muted); }
.panel { padding:22px; }.panel h2 { margin:0 0 5px; font-size:1.2rem; }.panel-heading { display:flex; justify-content:space-between; gap:20px; align-items:start; margin-bottom:14px; }.panel-heading p { margin:0; color:var(--muted); }.legend { white-space:nowrap; font-size:.86rem; }.legend i { display:inline-block; width:9px; height:9px; border-radius:99px; margin:0 4px 1px 8px; }.legend i:first-child { margin-left:0; }.ok { background:var(--ok); }.warn { background:var(--warn); }.high { background:var(--high); }
.table-wrap { overflow-x:auto; } table { width:100%; border-collapse:collapse; min-width:700px; } th,td { padding:11px 10px; text-align:left; border-bottom:1px solid var(--line); } th { color:#33555e; background:#f4f9f9; font-size:.84rem; } tbody tr:last-child td { border-bottom:0; }.empty { text-align:center; color:var(--muted); padding:26px; }.tag { display:inline-block; min-width:35px; padding:2px 7px; border-radius:999px; color:#fff; text-align:center; font-weight:750; font-size:.86rem; }.tag.ok { background:var(--ok); }.tag.warn { background:var(--warn); }.tag.high { background:var(--high); }
.auth-card { max-width:450px; margin:70px auto; padding:28px; }.auth-card>p:not(.eyebrow) { color:var(--muted); }.stack { display:grid; gap:16px; }.form-page { max-width:720px; margin:auto; display:grid; gap:22px; }.form-card { max-width:540px; }.actions { display:flex; justify-content:flex-end; gap:10px; }.optional { color:var(--muted); font-weight:400; }.flash { margin-bottom:22px; padding:12px 14px; border:1px solid; border-radius:8px; }.flash.success { color:#075e3d; background:#e9f8f1; border-color:#9dd9bd; }.flash.error { color:#8b202a; background:#fff1f2; border-color:#efb2b7; }
.week-controls { display:flex; align-items:end; flex-wrap:wrap; gap:10px; margin-bottom:8px; }.week-controls label { display:grid; gap:5px; min-width:140px; color:#33555e; font-size:.9rem; font-weight:650; }.week-controls select { min-width:140px; }.week-table td { min-width:115px; padding:7px 8px; vertical-align:middle; }.week-value { min-width:72px; padding:7px 6px; text-align:center; }.row-select { width:100%; min-height:32px; justify-content:flex-start; padding:3px 0; border:0; border-radius:0; background:transparent; color:#33555e; font-size:.84rem; font-weight:750; }.week-row.is-selected th,.week-row.is-selected td { background:#e0f2f5; }.week-row.is-selected .row-select { color:var(--brand-dark); }.hint { margin:0 0 14px; color:var(--muted); font-size:.87rem; }.note { display:block; max-width:100px; margin-top:5px; color:var(--muted); font-size:.72rem; line-height:1.25; }.inline-delete { display:inline; }.inline-delete button { min-height:0; margin-left:5px; padding:0 4px; color:#9c3036; border:0; background:transparent; font-size:1rem; }.two-columns { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }.two-columns .panel { align-content:start; }.two-columns p { margin-top:0; color:var(--muted); } hr { width:100%; border:0; border-top:1px solid var(--line); margin:8px 0; }.disclaimer { margin:20px 0 0; color:var(--muted); font-size:.88rem; }
footer { max-width:1180px; margin:0 auto; padding:0 24px 30px; color:var(--muted); font-size:.82rem; }
@media (max-width:780px) { .site-header { align-items:start; flex-wrap:wrap; }.brand { flex:1; }.account { width:100%; justify-content:space-between; } nav { width:100%; order:3; overflow:auto; }.shell { padding:25px 15px 42px; }.page-heading { align-items:start; flex-direction:column; }.cards,.two-columns { grid-template-columns:1fr; }.panel { padding:16px; }.panel-heading { display:block; }.legend { margin-top:8px !important; }.toolbar { align-items:stretch; }.toolbar button { width:100%; }.week-controls>* { width:100%; }.week-controls button { width:100%; } }
