@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');
:root{--wine:#52182e;--wine-deep:#351321;--wine-soft:#7f3a50;--rose:#f6e8e8;--paper:#fcf8f4;--card:#fffdfa;--ink:#2a2326;--muted:#73656b;--line:#e7d7d8;--gold:#bb8051;--amber:#f9e2c5;--good:#365c4b;--good-bg:#e7f0e9;--bad:#8b3d39;--bad-bg:#f8e7e4;--shadow:0 18px 44px rgba(76,32,43,.09);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(120deg,#f3e7e6 0,#fcf7f3 38%,#f4e6e6 100%);color:var(--ink);font:15px/1.5 'DM Sans','Trebuchet MS',sans-serif;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--wine)}img{max-width:100%}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shell{min-height:100vh}.topbar{background:var(--wine-deep);color:#fff;position:relative;overflow:hidden}.topbar:before{content:'';position:absolute;right:-8%;top:-120px;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.025)}.topbar-inner{max-width:1440px;margin:auto;padding:18px 38px 46px;position:relative}.brand-line{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:inherit}.brand img{width:67px;height:59px;object-fit:contain;filter:drop-shadow(0 5px 10px rgba(0,0,0,.15))}.brand div{display:flex;flex-direction:column;line-height:1.15}.brand strong{font-size:14px;letter-spacing:.13em;text-transform:uppercase}.brand span{font-size:12px;color:#f5caca}.top-actions{display:flex;align-items:center;gap:14px;font-size:13px;color:#f6dfe6}.top-actions button{background:transparent;border:1px solid #b58594;border-radius:99px;padding:8px 13px;color:#fff}.top-actions button:hover{background:#744057}.hero{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-top:38px}.eyebrow{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.23em;color:var(--gold)}.topbar .eyebrow{color:#e7bfc9}.hero h1,.section-title h2,.login-card h1{font:600 clamp(30px,3.5vw,48px)/1.1 'Fraunces',Georgia,serif;letter-spacing:-.035em;margin:8px 0}.hero p{color:#ecd6de;max-width:700px;margin:8px 0 0}.hero-date{text-align:right;min-width:190px}.hero-date strong{display:block;font:500 22px 'Fraunces',Georgia,serif}.hero-date span{font-size:12px;color:#e5c7d1}
.main{max-width:1440px;margin:-22px auto 0;padding:0 38px 64px;position:relative}.nav{display:flex;gap:8px;flex-wrap:wrap;background:#fffdfb;border:1px solid var(--line);border-radius:17px;padding:7px;width:max-content;max-width:100%;box-shadow:var(--shadow);margin-bottom:27px}.nav button{border:0;background:transparent;border-radius:11px;color:var(--wine-soft);padding:10px 16px;font-weight:700;font-size:13px;white-space:nowrap}.nav button.active{background:var(--wine);color:#fff}.nav button:hover:not(.active){background:var(--rose)}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:4px 0 19px}.section-title h2{font-size:29px;margin:4px 0}.section-title p{margin:0;color:var(--muted);font-size:13px}.section-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow)}.padded{padding:24px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr)}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:19px 21px;border-top:3px solid var(--wine)}.stat .label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--wine-soft)}.stat strong{display:block;font:600 clamp(25px,2.6vw,37px)/1.1 'Fraunces',Georgia,serif;margin:12px 0 7px;color:var(--wine-deep)}.stat small{color:var(--muted);font-size:12px}.stat.attention{border-top-color:var(--gold)}.stat.good{border-top-color:var(--good)}
.lead-card{border-radius:23px;padding:30px;background:linear-gradient(135deg,#fffaf7,#f8eaeb);border:1px solid #e9d2d7;box-shadow:var(--shadow)}.lead-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.lead-head h2{font:600 clamp(28px,3vw,41px)/1.12 'Fraunces',Georgia,serif;margin:6px 0;color:var(--wine-deep)}.lead-head p{margin:0;color:var(--muted)}.clock{font:600 30px 'Fraunces',Georgia,serif;color:var(--wine);white-space:nowrap}.clock small{display:block;text-align:right;font:500 11px 'DM Sans',sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.primary-action{margin-top:30px;width:100%;min-height:92px;border:0;border-radius:16px;background:var(--wine);color:white;text-align:left;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 13px 25px rgba(82,24,46,.23);transition:transform .2s,background .2s}.primary-action:hover{transform:translateY(-2px);background:#69243b}.primary-action strong{font-size:19px;display:block}.primary-action small{font-size:12px;color:#ead1d9}.primary-action .arrow{font-size:28px}.info-strip{display:flex;align-items:center;gap:10px;background:#f2e7e5;color:#614b53;border-radius:12px;padding:11px 14px;font-size:12px;margin-top:17px}.progress{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:25px}.step{border-top:3px solid #e5cfd4;padding-top:10px;min-width:0}.step.done{border-top-color:var(--good)}.step.now{border-top-color:var(--wine)}.step b{font-size:12px;display:block}.step span{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.subhead{font:600 21px 'Fraunces',Georgia,serif;color:var(--wine-deep);margin:0 0 13px}.list{display:grid;gap:11px}.list-row{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-row strong{font-size:13px}.list-row small{display:block;color:var(--muted);font-size:12px}.time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--wine)}.notice{padding:13px 16px;border-radius:12px;background:var(--amber);color:#674326;font-size:13px;border:1px solid #e7c79e;margin-bottom:14px}.notice.danger{background:var(--bad-bg);color:var(--bad);border-color:#eecac6}.notice.good{background:var(--good-bg);color:var(--good);border-color:#cbdfd2}
.btn{border:1px solid var(--wine);border-radius:10px;background:var(--wine);color:#fff;font-weight:700;padding:10px 15px;min-height:42px;font-size:13px}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:transparent;color:var(--wine)}.btn.ghost{background:#f7ecee;color:var(--wine);border-color:#e7cbd4}.btn.small{min-height:34px;padding:6px 10px;font-size:12px}.btn.danger{background:var(--bad);border-color:var(--bad)}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.field{display:grid;gap:6px;font-size:12px;font-weight:700;color:#624d54}.field input,.field select,.field textarea{border:1px solid #dac6cd;background:#fffdfb;border-radius:10px;padding:10px 12px;color:var(--ink);outline:none;min-height:42px;width:100%}.field textarea{min-height:85px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px #ecdce1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th{text-align:left;color:#7b5662;background:#f5e8eb;font-size:10px;text-transform:uppercase;letter-spacing:.11em;padding:12px 12px;white-space:nowrap}.table td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13px}.table tr:hover td{background:#fdf5f5}.table .strong{font-weight:700;color:var(--wine-deep)}.table .hour{font-variant-numeric:tabular-nums;white-space:nowrap}.table .actions{white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:99px;background:#f3e5e9;color:var(--wine);padding:5px 9px;font-size:11px;font-weight:700;line-height:1.2}.badge.good{background:var(--good-bg);color:var(--good)}.badge.warn{background:var(--amber);color:#885a2d}.badge.bad{background:var(--bad-bg);color:var(--bad)}.empty{padding:35px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--wine);font:600 21px 'Fraunces',Georgia,serif;margin-bottom:5px}.detail{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.detail div{padding:13px;border:1px solid var(--line);border-radius:12px}.detail small{display:block;color:var(--muted);font-size:11px}.detail strong{display:block;color:var(--wine);margin-top:4px;font-size:14px}.detail-summary{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.detail-summary span{background:#f5eaeb;padding:8px 11px;border-radius:9px;font-size:12px}.detail-summary b{color:var(--wine)}
.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(400px,.94fr)}.login-art{background:radial-gradient(circle at 80% 20%,#78445a 0,transparent 27%),linear-gradient(140deg,#351321,#68283f);padding:48px;display:flex;flex-direction:column;justify-content:space-between;color:white;position:relative;overflow:hidden}.login-art:after{content:'';position:absolute;border:1px solid rgba(255,255,255,.13);border-radius:50%;width:670px;height:670px;right:-280px;bottom:-260px;box-shadow:0 0 0 100px rgba(255,255,255,.025),0 0 0 210px rgba(255,255,255,.02)}.login-art>*{position:relative;z-index:1}.login-art img{width:155px;filter:drop-shadow(0 13px 15px rgba(0,0,0,.23))}.login-art h2{font:500 clamp(38px,5vw,70px)/1.07 'Fraunces',Georgia,serif;letter-spacing:-.05em;max-width:620px;margin:16px 0}.login-art p{color:#f2dce2;max-width:470px}.login-art .overline{text-transform:uppercase;letter-spacing:.22em;font-size:11px;color:#e8bdc9}.login-panel{display:flex;align-items:center;justify-content:center;padding:38px}.login-card{max-width:430px;width:100%}.login-card h1{font-size:42px;color:var(--wine-deep)}.login-card>p{color:var(--muted);margin:0 0 25px}.login-card form{display:grid;gap:16px}.login-card .btn{min-height:49px}.login-foot{margin-top:31px;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:12px}.login-foot b{color:var(--wine)}
.dialog{border:1px solid #e3cbd1;background:var(--card);border-radius:19px;box-shadow:0 28px 70px rgba(20,6,13,.27);padding:0;max-width:min(570px,calc(100vw - 25px));width:100%;color:var(--ink)}.dialog::backdrop{background:rgba(34,12,21,.59)}.dialog-body{padding:26px}.dialog-body h2{font:600 27px 'Fraunces',Georgia,serif;margin:5px 0;color:var(--wine-deep)}.dialog-body p{color:var(--muted);font-size:13px}.dialog-body .notice{margin:12px 0}.toast{position:fixed;right:22px;bottom:22px;background:var(--wine-deep);color:white;padding:13px 17px;border-radius:11px;box-shadow:0 12px 30px #35132140;z-index:20;max-width:420px;font-size:13px}.toast.error{background:var(--bad)}.footer{max-width:1440px;margin:auto;padding:0 38px 30px;color:#8e777d;font-size:11px}.monthly-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.monthly-controls input{border:1px solid #d9bec8;border-radius:10px;padding:9px 10px;min-height:42px;background:#fffdfb;color:var(--wine)}
@media(max-width:1100px){.grid.four{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.login-layout{grid-template-columns:1fr 1fr}.login-art{padding:35px}}@media(max-width:700px){.topbar-inner{padding:14px 18px 42px}.main{padding:0 14px 48px}.brand img{width:56px;height:48px}.brand strong{font-size:12px}.brand span{font-size:11px}.top-actions .username{display:none}.hero{margin-top:28px;align-items:start;flex-direction:column;gap:9px}.hero h1{font-size:34px}.hero-date{text-align:left}.hero-date strong{font-size:17px}.nav{width:100%;overflow-x:auto;flex-wrap:nowrap}.nav button{font-size:12px;padding:9px 11px}.grid.four,.grid.three{grid-template-columns:repeat(2,1fr)}.lead-card{padding:21px}.lead-head{flex-direction:column;gap:10px}.clock small{text-align:left}.primary-action{min-height:76px;margin-top:20px}.progress{gap:6px}.step b{font-size:10px}.step span{font-size:11px}.section-title{align-items:start;flex-direction:column}.section-title h2{font-size:27px}.detail{grid-template-columns:repeat(2,1fr)}.login-layout{grid-template-columns:1fr}.login-art{min-height:270px;padding:24px}.login-art img{width:90px}.login-art h2{font-size:35px}.login-art p{display:none}.login-panel{padding:28px 20px}.login-card h1{font-size:34px}.footer{padding:0 16px 24px}}@media(max-width:430px){.grid.four,.grid.three{grid-template-columns:1fr 1fr}.stat{padding:15px}.stat strong{font-size:24px}.form-grid{grid-template-columns:1fr}.detail{grid-template-columns:1fr 1fr}.top-actions button{padding:7px 10px}.topbar .eyebrow{font-size:9px}}
.nav{scrollbar-width:none}.nav::-webkit-scrollbar{display:none}
