:root{--ink:#2d2926;--muted:#706963;--paper:#fff;--canvas:#f6f3ef;--line:#ddd5ce;--blue:#0032a0;--copper:#c08d5f;--sand:#ead6b8;--danger:#9c4139;--success:#28634a;--shadow:0 18px 55px rgba(45,41,38,.1)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;color:var(--ink);background:var(--canvas);font-family:"Segoe UI",Arial,sans-serif;line-height:1.5}a{color:inherit}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--ink);color:#fff;padding:28px 18px}.logo{display:block;text-decoration:none;padding:0 12px 34px}.logo img{display:block;width:170px;height:65px;object-fit:contain}.logo span{display:block;color:var(--sand);font-size:.65rem;letter-spacing:.23em;margin-top:-6px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{border-left:3px solid transparent;color:#d4cdca;text-decoration:none;padding:11px 14px}.sidebar nav a:hover,.sidebar nav a.active{background:#3c3733;border-left-color:var(--copper);color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid #554e49;padding:20px 12px 0}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{color:#bbb2ad}.sidebar-user button{border:0;background:none;color:var(--sand);padding:12px 0 0;cursor:pointer}.main{min-width:0;padding:42px clamp(22px,4vw,62px)}.mobile-header{display:none}.page-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:30px}.page-head h1{margin:4px 0 0;font-family:Georgia,serif;font-size:clamp(2.25rem,4vw,3.7rem);font-weight:400;line-height:1}.eyebrow{margin:0;color:var(--blue);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.button,button.button{display:inline-block;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;padding:10px 14px;font:inherit;font-size:.86rem;font-weight:700;cursor:pointer}.button.secondary{background:#fff;color:var(--ink)}.button.blue{background:var(--blue);border-color:var(--blue)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.stat{background:var(--paper);border:1px solid var(--line);padding:22px}.stat strong{display:block;color:var(--copper);font-family:Georgia,serif;font-size:2.4rem;font-weight:400;line-height:1}.stat span{display:block;color:var(--muted);margin-top:8px}.grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.card{background:var(--paper);border:1px solid var(--line);padding:24px}.card h2{margin:0 0 18px;font-family:Georgia,serif;font-size:1.55rem;font-weight:400}.task-row,.member-row{display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:15px 0}.task-row:first-of-type,.member-row:first-of-type{border-top:0}.dot{width:8px;height:8px;border-radius:50%;background:var(--copper)}.dot.overdue{background:var(--danger)}.task-row small,.member-row small{display:block;color:var(--muted)}.pill{display:inline-block;background:#eee9e5;color:#5a524d;border-radius:20px;padding:4px 9px;font-size:.72rem;font-weight:700}.pill.available{background:#dceadf;color:#24593f}.pill.active_match{background:#dfe7f7;color:var(--blue)}.pill.cancelled{background:#eddfdd;color:var(--danger)}.empty{color:var(--muted);padding:20px 0}.table-wrap{overflow:auto;background:var(--paper);border:1px solid var(--line)}table{width:100%;min-width:780px;border-collapse:collapse}th,td{text-align:left;padding:14px 15px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--ink);color:#fff;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase}tr:last-child td{border-bottom:0}td a{color:var(--blue);font-weight:700;text-decoration:none}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.filters input,.filters select,.field input,.field select,.field textarea{width:100%;border:1px solid #bfb6ae;background:#fff;padding:11px 12px;font:inherit}.filters input{max-width:320px}.filters select{max-width:220px}.filters button{border:0;background:var(--blue);color:#fff;padding:10px 15px;font-weight:700}.detail-grid{display:grid;grid-template-columns:1fr 360px;gap:18px}.data-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 22px;margin:0}.data-list div{border-top:1px solid var(--line);padding:13px 0}.data-list dt{color:var(--muted);font-size:.76rem}.data-list dd{margin:4px 0 0;font-weight:600}.field{margin-bottom:16px}.field label{display:block;margin-bottom:6px;font-size:.82rem;font-weight:700}.field small{display:block;color:var(--muted);margin-top:5px}.checkbox{display:flex;gap:9px;align-items:flex-start}.checkbox input{width:auto;margin-top:5px}.notice{border-left:4px solid var(--blue);background:#eef2fb;padding:16px;margin-bottom:18px}.notice strong{display:block}.flash{border-left:5px solid var(--success);background:#e4f0e8;padding:14px 16px;margin-bottom:22px}.flash.error{border-left-color:var(--danger);background:#f5e6e3}.guest-shell{min-height:100vh;background:linear-gradient(120deg,#fff 0 65%,#f0e3d6 65%)}.guest-main{display:grid;place-items:center;min-height:100vh;padding:24px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:38px}.login-card img{display:block;width:230px;height:100px;object-fit:contain;margin:0 auto 18px}.login-card h1{margin:0 0 8px;font-family:Georgia,serif;font-weight:400;text-align:center}.login-card>p{color:var(--muted);text-align:center;margin:0 0 28px}.login-card .button{width:100%}.error-text{color:var(--danger);font-size:.86rem}.actions{display:flex;gap:9px;flex-wrap:wrap}.muted{color:var(--muted)}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.grid,.detail-grid{grid-template-columns:1fr}}@media(max-width:740px){.app-shell{display:block}.sidebar{position:fixed;left:-260px;z-index:30;width:248px;transition:left .2s}.sidebar.open{left:0}.mobile-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:13px 18px}.mobile-header button{border:1px solid var(--ink);background:#fff;padding:6px 10px}.main{padding:28px 18px}.stats{grid-template-columns:1fr 1fr}.page-head{align-items:flex-start;flex-direction:column}.data-list{grid-template-columns:1fr}}@media(max-width:460px){.stats{grid-template-columns:1fr}.login-card{padding:28px 22px}}

