:root{--navy:#071722;--navy2:#0d2534;--navy3:#15394e;--gold:#b9914e;--gold2:#d7b675;--cream:#f5f1e9;--paper:#fff;--ink:#152630;--muted:#6f7a80;--line:#dfe4e7;--green:#2f8b68;--red:#c95b61;--orange:#ca8a33;--blue:#3c73b9;--shadow:0 16px 44px rgba(7,23,34,.10);--radius:18px;--sidebar:270px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#edf1f4;color:var(--ink)}body{font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#06151f,#0b2230);color:#fff;display:flex;flex-direction:column;padding:20px 15px;z-index:40;box-shadow:18px 0 40px rgba(4,16,24,.12)}.brand{display:flex;align-items:center;gap:12px;padding:8px 10px 24px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:14px}.brand-mark{width:44px;height:44px;border:1px solid rgba(215,182,117,.75);display:grid;place-items:center;border-radius:12px;font-family:Georgia,serif;font-size:25px;color:var(--gold2);background:rgba(255,255,255,.04)}.brand strong{font-family:Georgia,serif;letter-spacing:2px;font-weight:500;font-size:17px}.brand small{display:block;color:#b9c5cb;font-size:10px;margin-top:3px;letter-spacing:.4px}.sidebar nav{display:flex;flex-direction:column;gap:4px;overflow:auto;padding:5px 0 20px}.nav-link{display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:12px;color:#c7d0d5;transition:.2s}.nav-link .icon{width:19px;height:19px}.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.nav-link.active{background:linear-gradient(90deg,rgba(185,145,78,.26),rgba(185,145,78,.08));color:#fff;box-shadow:inset 3px 0 0 var(--gold2)}.sidebar-bottom{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.online{display:flex;align-items:center;gap:8px;color:#bac9cf;padding:8px 12px;font-size:12px}.online i{width:8px;height:8px;border-radius:50%;background:#35b87d;box-shadow:0 0 0 4px rgba(53,184,125,.12)}.profile{display:flex;gap:10px;align-items:center;padding:10px;border-radius:13px;background:rgba(255,255,255,.05)}.avatar{width:36px;height:36px;border-radius:11px;background:var(--gold);color:#fff;display:grid;place-items:center;font-weight:700}.profile small{display:block;color:#aebcc2;font-size:11px;margin-top:2px}.workspace{margin-left:var(--sidebar);min-height:100vh}.topbar{height:84px;position:sticky;top:0;z-index:25;background:rgba(247,249,250,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar-left{display:flex;align-items:center;gap:14px}.topbar small{text-transform:uppercase;color:var(--gold);font-size:10px;letter-spacing:2px}.topbar h1{font-family:Georgia,serif;margin:3px 0 0;font-size:25px;font-weight:500}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn,.search-btn,.btn{border:0;cursor:pointer}.icon-btn{width:42px;height:42px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;position:relative}.notif-count{position:absolute;top:-5px;right:-4px;background:var(--red);color:#fff;border-radius:10px;min-width:18px;height:18px;font-size:10px;display:grid;place-items:center}.search-btn{height:42px;padding:0 15px;border-radius:12px;background:#fff;border:1px solid var(--line);color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;border-radius:11px;font-weight:700;line-height:1.1}.btn-sm{padding:8px 11px;font-size:12px}.btn-gold{background:linear-gradient(135deg,var(--gold),#caa55f);color:#fff;box-shadow:0 8px 20px rgba(185,145,78,.2)}.btn-dark{background:var(--navy);color:#fff}.btn-light{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn-danger{background:#fff0f0;color:var(--red);border:1px solid #f1c8ca}.btn-success{background:#e9f7f1;color:var(--green);border:1px solid #bfe3d4}.content{padding:26px 28px 110px;max-width:1900px;margin:0 auto}.alert{padding:13px 15px;border-radius:12px;margin-bottom:14px}.alert-success{background:#e9f7f1;color:#216c51;border:1px solid #bfe3d4}.alert-error{background:#fff0f0;color:#9b3b40;border:1px solid #f1c8ca}.alert-info{background:#eaf2fb;color:#315f92;border:1px solid #c9dcef}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.card{background:var(--paper);border:1px solid rgba(211,219,224,.9);border-radius:var(--radius);box-shadow:0 7px 24px rgba(7,23,34,.045);margin-bottom:18px;overflow:hidden}.card-pad{padding:20px}.card-head{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;border-bottom:1px solid var(--line);gap:12px}.card-head h2{font-family:Georgia,serif;font-size:19px;font-weight:500;margin:0}.card-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.card-body{padding:20px}.metric{padding:20px;min-height:132px;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,rgba(185,145,78,.13),transparent);right:-25px;top:-25px}.metric-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.metric-icon{width:40px;height:40px;border-radius:12px;background:#f5efe3;color:var(--gold);display:grid;place-items:center}.metric strong{display:block;font-family:Georgia,serif;font-size:30px;margin:16px 0 6px;font-weight:500}.metric small.delta{color:var(--green);font-weight:700}.section-title{display:flex;align-items:end;justify-content:space-between;margin:7px 0 14px;gap:10px}.section-title h2{font-family:Georgia,serif;font-size:24px;font-weight:500;margin:0}.section-title p{color:var(--muted);margin:5px 0 0}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:16px}.toolbar-left,.toolbar-right{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.input,.select,.textarea{width:100%;border:1px solid #d8e0e4;background:#fff;color:var(--ink);border-radius:10px;padding:11px 12px;outline:none;transition:.2s}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(185,145,78,.13)}.textarea{min-height:105px;resize:vertical}.search-input{min-width:250px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field label{display:block;font-size:12px;font-weight:700;margin:0 0 7px}.field .help{display:block;color:var(--muted);font-size:11px;margin-top:5px}.field-full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:6px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:780px}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);background:#fafbfb;position:sticky;top:0}.table td{padding:13px 14px;border-bottom:1px solid #edf0f2;vertical-align:middle}.table tr:hover td{background:#fcfdfd}.table tr:last-child td{border-bottom:0}.cell-title{font-weight:700}.cell-sub{display:block;color:var(--muted);font-size:11px;margin-top:3px}.actions{display:flex;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:20px;font-size:11px;font-weight:700;background:#eef2f4;color:#52616a}.badge-new,.badge-draft,.badge-planned,.badge-open,.badge-pending{background:#fff2d9;color:#8b5e19}.badge-contacted,.badge-sent,.badge-active,.badge-site_visit{background:#e8f1fb;color:#34659b}.badge-viewed,.badge-partial{background:#efeafe;color:#6552a7}.badge-accepted,.badge-won,.badge-completed,.badge-paid{background:#e7f6ef;color:#2b7a5b}.badge-rejected,.badge-lost,.badge-cancelled,.badge-spam{background:#fdebed;color:#a34348}.badge-paused,.badge-leave,.badge-day_off{background:#f0f1f2;color:#69767d}.progress{height:8px;background:#e9edef;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));border-radius:10px}.empty{padding:48px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-family:Georgia,serif;font-size:20px;margin-bottom:6px}.timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:38px 1fr auto;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.timeline-item:last-child{border-bottom:0}.timeline-dot{width:34px;height:34px;border-radius:11px;background:#f4ede1;color:var(--gold);display:grid;place-items:center}.timeline-item small{color:var(--muted)}.chart{height:250px;position:relative}.chart canvas{width:100%;height:100%}.analytics-row{display:grid;grid-template-columns:2fr 1fr;gap:18px}.donut-wrap{display:flex;align-items:center;justify-content:center;height:250px}.donut{width:170px;height:170px;border-radius:50%;background:conic-gradient(var(--gold) 0 62%,var(--navy3) 62% 82%,#9fb0ba 82% 100%);position:relative}.donut:after{content:"";position:absolute;inset:28px;border-radius:50%;background:#fff}.donut-label{position:absolute;inset:0;display:grid;place-items:center;z-index:1;text-align:center}.donut-label strong{font-family:Georgia,serif;font-size:28px}.list{display:flex;flex-direction:column}.list-row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.live-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;background:#e8f8f1;color:#28775a;border-radius:20px;font-weight:700}.live-pill i{width:7px;height:7px;background:#32a874;border-radius:50%;box-shadow:0 0 0 4px rgba(50,168,116,.12)}.quote-editor .item-row{display:grid;grid-template-columns:minmax(260px,3fr) 100px 90px 130px 130px 42px;gap:8px;margin-bottom:8px;align-items:center}.quote-total{margin-left:auto;width:min(430px,100%);display:grid;gap:8px}.quote-total>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.quote-total>div:last-child{font-family:Georgia,serif;font-size:22px;border:0;color:var(--navy)}.project-card{padding:0}.project-cover{height:150px;background:linear-gradient(135deg,#1c394b,#0b1922);position:relative;overflow:hidden}.project-cover:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 20%,rgba(215,182,117,.35),transparent 38%)}.project-card-body{padding:18px}.project-card h3{font-family:Georgia,serif;font-size:20px;font-weight:500;margin:0 0 4px}.project-meta{color:var(--muted);font-size:12px}.project-stats{display:flex;justify-content:space-between;margin-top:15px;font-size:12px}.employee-card{padding:18px}.employee-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.employee-avatar{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,var(--navy3),var(--navy));color:var(--gold2);display:grid;place-items:center;font-family:Georgia,serif;font-size:18px}.employee-card h3{margin:0;font-family:Georgia,serif;font-size:19px}.employee-rates{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.employee-rates div{background:#f7f8f8;border-radius:10px;padding:10px}.employee-rates small{display:block;color:var(--muted);font-size:10px}.employee-rates strong{display:block;margin-top:3px}.link-box{display:flex;gap:8px;margin-top:13px}.link-box input{font-size:11px}.split-layout{display:grid;grid-template-columns:360px 1fr;gap:18px}.message-list{max-height:700px;overflow:auto;border-right:1px solid var(--line)}.message-item{display:block;padding:14px;border-bottom:1px solid var(--line)}.message-item.active{background:#f5efe3}.message-item strong{display:flex;justify-content:space-between}.message-item p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);margin:6px 0 0}.message-view{padding:22px}.message-body{background:#f7f8f8;border-radius:14px;padding:18px;line-height:1.6;min-height:180px}.settings-tabs{display:flex;gap:5px;overflow:auto;padding:8px}.settings-tabs a{white-space:nowrap;padding:10px 13px;border-radius:10px}.settings-tabs a.active{background:var(--navy);color:#fff}.mobile-menu,.mobile-nav{display:none}.scrim{display:none}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quick-action{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff;display:flex;gap:10px;align-items:center;font-weight:700}.quick-action:hover{border-color:var(--gold);box-shadow:0 7px 20px rgba(185,145,78,.1)}.quick-action span:first-child{width:36px;height:36px;border-radius:10px;background:#f5efe3;color:var(--gold);display:grid;place-items:center}.summary-bar{display:flex;flex-wrap:wrap;gap:18px;padding:18px 20px;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:var(--radius);margin-bottom:18px}.summary-bar>div{min-width:150px}.summary-bar small{display:block;color:#b8c5cb}.summary-bar strong{font-family:Georgia,serif;font-size:23px;font-weight:500}.calendar-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;min-height:90px}.calendar-day.today{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.calendar-day b{font-size:12px}.calendar-event{margin-top:8px;padding:5px 6px;background:#f5efe3;color:#795b2b;border-radius:6px;font-size:10px}.public-preview{border-radius:18px;background:var(--navy);color:#fff;padding:24px}.public-preview .brand{border:0;padding:0;margin:0 0 24px}.public-preview h2{font-family:Georgia,serif;font-size:30px;font-weight:500}.code{background:#0a1821;color:#d5e0e6;border-radius:12px;padding:14px;font-family:ui-monospace,monospace;font-size:12px;overflow:auto}.kpi-dark{background:linear-gradient(135deg,#071722,#123145);color:#fff}.kpi-dark .metric-top{color:#c1cdd2}.kpi-dark .metric-icon{background:rgba(215,182,117,.13)}.kpi-dark strong{color:#fff}.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:#071722}.login-visual{position:relative;background:linear-gradient(135deg,rgba(7,23,34,.62),rgba(7,23,34,.35)),url('../img/login-bg.svg') center/cover}.login-copy{position:absolute;left:8%;bottom:10%;color:#fff;max-width:620px}.login-copy h1{font-family:Georgia,serif;font-size:54px;font-weight:500;margin:0 0 15px}.login-copy p{font-size:16px;color:#d6dee2;line-height:1.6}.login-panel{display:grid;place-items:center;padding:35px;background:#f6f2ea}.login-card{width:min(430px,100%);background:#fff;padding:34px;border-radius:22px;box-shadow:var(--shadow)}.login-card .brand{color:var(--ink);border:0;padding:0;margin-bottom:28px}.login-card h2{font-family:Georgia,serif;font-size:28px;font-weight:500}.install-page{min-height:100vh;background:#f2f0eb;padding:40px}.install-wrap{max-width:850px;margin:auto}.install-steps{display:flex;gap:8px;margin-bottom:20px}.install-steps span{flex:1;height:5px;border-radius:5px;background:#d9dedf}.install-steps span.active{background:var(--gold)}.print-only{display:none}@media print{.sidebar,.topbar,.mobile-nav,.no-print{display:none!important}.workspace{margin:0}.content{padding:0}.card{box-shadow:none;border:0}.print-only{display:block}}
@media(max-width:1250px){.grid-5{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}.analytics-row{grid-template-columns:1fr}.split-layout{grid-template-columns:300px 1fr}.quote-editor .item-row{grid-template-columns:minmax(220px,2fr) 80px 75px 110px 110px 38px}}
@media(max-width:980px){:root{--sidebar:248px}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.mobile-menu{display:grid}.scrim{display:block;position:fixed;inset:0;background:rgba(4,15,22,.55);z-index:35;opacity:0;pointer-events:none;transition:.2s}.scrim.show{opacity:1;pointer-events:auto}.grid-3{grid-template-columns:repeat(2,1fr)}.form-grid-3{grid-template-columns:repeat(2,1fr)}.split-layout{grid-template-columns:1fr}.message-list{border-right:0;max-height:320px;border-bottom:1px solid var(--line)}}
@media(max-width:720px){body{font-size:13px}.topbar{height:70px;padding:0 14px}.topbar h1{font-size:20px}.top-actions .search-btn,.top-actions .btn-gold{display:none}.content{padding:16px 12px 90px}.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}.metric{min-height:110px}.grid.mobile-2{grid-template-columns:repeat(2,1fr);gap:10px}.metric strong{font-size:25px;margin-top:12px}.card{border-radius:15px;margin-bottom:13px}.card-head,.card-body,.card-pad{padding:15px}.form-grid,.form-grid-3{grid-template-columns:1fr}.field-full{grid-column:auto}.toolbar{align-items:stretch}.toolbar-left,.toolbar-right{width:100%}.toolbar .input,.toolbar .select,.toolbar .btn{flex:1}.search-input{min-width:0}.table{min-width:680px}.table th,.table td{padding:10px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;height:68px;background:rgba(7,23,34,.97);z-index:30;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -10px 30px rgba(0,0,0,.13)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9cadb5;font-size:9px;gap:4px}.mobile-nav .icon{width:20px;height:20px}.mobile-nav a.active{color:var(--gold2)}.quote-editor .item-row{grid-template-columns:1fr 1fr;gap:7px;padding:12px;border:1px solid var(--line);border-radius:12px}.quote-editor .item-row .desc{grid-column:1/-1}.quote-editor .item-row .remove{grid-column:2;justify-self:end}.quick-grid{grid-template-columns:repeat(2,1fr)}.calendar-strip{grid-template-columns:repeat(2,1fr)}.employee-rates{grid-template-columns:1fr 1fr}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-panel{padding:18px}.login-card{padding:25px}.summary-bar{gap:12px}.summary-bar>div{min-width:120px;flex:1}.section-title h2{font-size:21px}.actions{min-width:200px}.hide-mobile{display:none!important}}
.toast-wrap{position:fixed;right:20px;bottom:22px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{background:#071722;color:#fff;padding:12px 15px;border-radius:11px;box-shadow:var(--shadow);animation:toastin .2s ease}.toast.error{background:#a84046}@keyframes toastin{from{transform:translateY(10px);opacity:0}}

/* v1.1 company logo + public website gallery */
.admin-brand-image{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:4px 2px 17px}.admin-logo-card{display:flex;background:#fff;border-radius:13px;padding:7px 9px;min-height:74px;align-items:center;justify-content:center}.admin-logo-card img{width:100%;max-width:215px;height:65px;object-fit:contain}.admin-brand-image>small{padding-left:8px;color:#9fb0b9;font-size:10px;letter-spacing:.8px}.website-project-card{padding:0;overflow:hidden}.website-project-card>img,.website-project-placeholder{width:100%;height:185px;object-fit:cover}.website-project-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#102c3c,#071722);color:#d7b675}.upload-zone{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;border:1px dashed #c7d0d5;background:#f8fafb;border-radius:15px;padding:17px}.upload-zone>div{grid-column:1/-1}.upload-zone strong,.upload-zone span{display:block}.upload-zone span{color:var(--muted);font-size:12px;margin-top:3px}.website-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.website-photo{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.website-photo>img{width:100%;height:170px;object-fit:cover}.website-photo-tools{padding:10px;display:flex;flex-direction:column;gap:9px}.website-photo-tools>span{font-size:11px;font-weight:800;color:var(--gold)}.website-photo-tools>div{display:flex;gap:6px;flex-wrap:wrap}.website-photo-tools form{display:inline-flex}
@media(max-width:1250px){.website-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.admin-logo-card{min-height:65px}.admin-logo-card img{height:54px}.website-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.website-photo>img{height:135px}.upload-zone{grid-template-columns:1fr}.upload-zone .btn{width:100%}}

.badge-published{background:#e8f8f1;color:#28775a}
