@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Playfair+Display:wght@400;500;600;700&display=swap");:root{--bg:#0c0c0e;--surface:#16161a;--surface2:#1e1e24;--surface3:#26262e;--border:#2a2a34;--border2:#35354a;--text:#e8e6f0;--text2:#a09cb0;--text3:#6b6780;--accent:#c8a96e;--accent2:#e8d5a8;--accent-dim:hsla(39,45%,61%,.12);--red:#ef4444;--green:#10b981;--blue:#3b82f6}[data-theme=light]{--bg:#f5f2ec;--surface:#fff;--surface2:#eeeae3;--surface3:#e4dfd6;--border:#d4cebf;--border2:#c0b9a8;--text:#1a1714;--text2:#4a4440;--text3:#7a756e;--accent:#a8872a;--accent2:#8a6e1e;--accent-dim:rgba(168,135,42,.13)}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;background:var(--bg);color:var(--text);font-family:DM Sans,sans-serif}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-brand{padding:24px 20px;border-bottom:1px solid var(--border)}.sidebar-brand h1{font-family:Playfair Display,serif;font-size:22px;font-weight:600;color:var(--accent);letter-spacing:2px}.sidebar-brand span{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:3px;margin-top:2px;display:block}.sidebar-nav{flex:1 1;padding:12px 8px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text2);transition:all .15s;margin-bottom:2px}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--accent)}.nav-item svg{width:18px;height:18px;flex-shrink:0}.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--text3);padding:16px 12px 6px}.nav-badge{margin-left:auto;background:var(--accent);color:var(--bg);font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px}.sidebar-footer{padding:16px;border-top:1px solid var(--border)}.main{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.topbar{padding:16px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--surface);flex-shrink:0}.topbar h2{font-family:Playfair Display,serif;font-size:20px;font-weight:500}.topbar-actions{display:flex;gap:10px;align-items:center}.content{flex:1 1;overflow-y:auto;padding:24px 28px}.btn{padding:8px 16px;border-radius:8px;font-size:13px;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:all .15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-primary:hover{background:var(--accent2)}.btn-secondary{background:var(--surface2);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--surface3)}.btn-ghost{background:transparent;color:var(--text2)}.btn-ghost:hover{background:var(--surface2);color:var(--text)}.btn-danger{background:transparent;color:var(--red);border-color:rgba(239,68,68,.3)}.btn-danger:hover{background:rgba(239,68,68,.1)}.btn-sm{padding:5px 10px;font-size:12px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text3);background:var(--surface2);font-weight:500;white-space:nowrap}.table td,.table th{padding:12px 16px;border-bottom:1px solid var(--border)}.table td{font-size:13px;vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:hsla(39,45%,61%,.03)}.table .couple{font-weight:500;color:var(--text)}.table .couple span{font-weight:400;color:var(--text3);font-size:12px}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500}.status-dot{width:6px;height:6px;border-radius:50%}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cal-header h3{font-family:Playfair Display,serif;font-size:18px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.cal-day-header{padding:10px;text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);background:var(--surface2)}.cal-cell,.cal-day-header{border-bottom:1px solid var(--border)}.cal-cell{min-height:100px;padding:6px;border-right:1px solid var(--border);position:relative}.cal-cell:nth-child(7n){border-right:none}.cal-cell.empty{background:var(--bg);opacity:.5}.cal-cell.today{background:hsla(39,45%,61%,.05)}.cal-date{font-size:12px;color:var(--text3);padding:2px 4px}.cal-date.today{background:var(--accent);color:var(--bg);border-radius:4px;font-weight:600}.cal-event{font-size:10px;padding:2px 5px;border-radius:4px;margin-top:2px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .1s}.cal-event:hover{transform:scale(1.02)}.cal-clash{position:absolute;top:2px;right:2px;width:8px;height:8px;background:var(--red);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.filters{display:flex;gap:10px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.filter-chip{padding:5px 12px;border-radius:20px;font-size:12px;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text2);transition:all .15s}.filter-chip:hover{border-color:var(--text3)}.filter-chip.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.search-input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-size:13px;font-family:inherit;width:240px;outline:none;transition:border-color .15s}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--text3)}.public-enquiry-page{min-height:100vh;background:radial-gradient(circle at top left,hsla(39,45%,61%,.16),transparent 30%),radial-gradient(circle at bottom right,rgba(59,130,246,.08),transparent 28%),linear-gradient(180deg,#0f0f13,#09090b);padding:40px 20px}.public-enquiry-shell{width:min(820px,100%);margin:0 auto}.public-enquiry-intro{margin-bottom:22px;text-align:center}.public-enquiry-kicker{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.public-enquiry-intro h1{font-family:Playfair Display,serif;font-size:clamp(30px,5vw,48px);font-weight:600;margin-bottom:12px}.public-enquiry-intro p{max-width:640px;margin:0 auto;font-size:14px;line-height:1.7;color:var(--text2)}.public-enquiry-card{background:linear-gradient(180deg,rgba(30,30,36,.98),rgba(22,22,26,.98));border:1px solid hsla(39,45%,61%,.16);border-radius:22px;padding:24px;box-shadow:0 24px 80px rgba(0,0,0,.35)}.public-chip-row{display:flex;flex-wrap:wrap;gap:8px}.public-form-actions{display:flex;justify-content:flex-end;margin-top:20px}.public-form-alert{margin-top:16px;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.6}.public-form-alert-error{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.22);color:#f9b1b1}.public-form-alert-success{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.22);color:#9ce2c8}.public-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,hsla(39,45%,61%,.15),transparent 32%),linear-gradient(180deg,#111116,#09090c)}.login-card{width:min(460px,100%);background:linear-gradient(180deg,rgba(30,30,36,.98),rgba(22,22,26,.98));border:1px solid hsla(39,45%,61%,.16);border-radius:20px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.35);text-align:center}.login-kicker{font-size:11px;text-transform:uppercase;letter-spacing:3px;color:var(--accent);margin-bottom:12px}.login-card h1{font-family:Playfair Display,serif;font-size:34px;margin-bottom:12px}.login-card p{font-size:14px;line-height:1.7;color:var(--text2);margin-bottom:18px}.login-alert{margin-bottom:18px;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.6;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.22);color:#f9b1b1}.panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:100;display:flex;justify-content:flex-end;animation:fadeIn .15s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.panel{width:680px;max-width:100%;background:var(--surface);border-left:1px solid var(--border);height:100%;overflow-y:auto;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translateX(40px);opacity:0}to{transform:translateX(0);opacity:1}}.panel-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;background:var(--surface);z-index:2}.panel-header h3{font-family:Playfair Display,serif;font-size:18px}.panel-body{padding:24px}.panel-section{margin-bottom:24px}.panel-section-title{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--text3);margin-bottom:12px;display:flex;align-items:center;gap:8px}.panel-section-title:after{content:"";flex:1 1;height:1px;background:var(--border)}.field{margin-bottom:14px}.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field textarea{resize:vertical;min-height:80px}.field select{cursor:pointer}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.supplier-row{display:flex;gap:8px;align-items:center;padding:8px 12px;background:var(--surface2);border-radius:8px;margin-bottom:6px;font-size:13px}.supplier-row .sup-type{color:var(--text3);width:100px;font-size:12px}.supplier-row .sup-name{flex:1 1;color:var(--text)}.supplier-row .sup-cost{color:var(--accent)}.email-item{padding:12px;background:var(--surface2);border-radius:8px;margin-bottom:8px;border-left:3px solid var(--border)}.email-item.sent{border-left-color:var(--accent)}.email-item.received{border-left-color:var(--blue)}.email-item .email-meta{font-size:11px;color:var(--text3);margin-bottom:4px;display:flex;justify-content:space-between}.email-item .email-subject{font-size:13px;font-weight:500;color:var(--text)}.email-item .email-body{font-size:12px;color:var(--text2);margin-top:4px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.compose-area{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:8px}.compose-area textarea{background:transparent;border:none;width:100%;color:var(--text);font-size:13px;font-family:inherit;outline:none;resize:vertical;min-height:60px}.compose-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.68);z-index:140;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s}.confirm-modal{width:min(480px,100%);background:var(--surface);border:1px solid var(--border2);border-radius:16px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.4)}.confirm-modal h3{font-family:Playfair Display,serif;font-size:22px;margin-bottom:12px;color:var(--text)}.confirm-message{font-size:13px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.recycle-layout{display:grid;grid-gap:18px;gap:18px}.recycle-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}.recycle-empty{padding:18px 0 6px;color:var(--text3);font-size:13px}.clash-alert{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);border-radius:10px;padding:14px 18px;margin-bottom:20px;display:flex;align-items:flex-start;gap:10px}.clash-alert svg{color:var(--red);flex-shrink:0;margin-top:2px}.clash-alert .clash-text{font-size:13px;color:var(--text2)}.clash-alert .clash-text strong{color:var(--red)}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{padding:10px 18px;font-size:13px;color:var(--text3);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.tab:hover{color:var(--text2)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.stat-card .stat-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text3)}.stat-card .stat-value{font-family:Playfair Display,serif;font-size:28px;font-weight:600;color:var(--text);margin-top:4px}.stat-card .stat-sub{font-size:11px;color:var(--text3);margin-top:2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}@media (max-width:900px){.sidebar{display:none}.stats{grid-template-columns:repeat(2,1fr)}.panel{width:100%}.confirm-actions{flex-direction:column-reverse}.confirm-actions .btn{width:100%;justify-content:center}.public-enquiry-page{padding:24px 14px}.public-enquiry-card{padding:18px;border-radius:18px}.public-form-actions .btn{width:100%;justify-content:center}}