@import url(https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&display=swap);:root{--bg:#f6f7fa;--bg-deep:#eceff4;--surface:#fff;--surface-soft:#f7f8fb;--text:#1d2a3b;--text-soft:#6a778a;--border:#d9dee8;--primary:#1f3c63;--primary-strong:#122744;--accent:#f0ba1f;--accent-soft:#fff4cc;--danger:#b83a3a;--shadow:0 14px 30px #14233b14;--radius:16px}*,:after,:before{box-sizing:border-box}#root,body,html{min-height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(80rem 30rem at -20% -25%,#1e3c6314,#0000 45%),radial-gradient(70rem 30rem at 120% 0,#f0ba1f24,#0000 50%),linear-gradient(180deg,#f6f7fa,#eceff4);background:radial-gradient(80rem 30rem at -20% -25%,#1e3c6314,#0000 45%),radial-gradient(70rem 30rem at 120% 0,#f0ba1f24,#0000 50%),linear-gradient(180deg,var(--bg) 0,var(--bg-deep) 100%);color:#1d2a3b;color:var(--text);font-family:Public Sans,Segoe UI,Arial,sans-serif;margin:0}h1,h2,h3,h4{font-family:Sora,Segoe UI,Arial,sans-serif;letter-spacing:-.01em;margin:0}p{margin:0}button,input,select{font:inherit}.page-animate{animation:page-in .42s ease}.auth-shell{display:grid;min-height:100vh;padding:28px;place-items:center}.auth-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff0;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:22px;box-shadow:0 14px 30px #14233b14;box-shadow:var(--shadow);padding:32px;width:min(460px,100%)}.eyebrow{color:#f0ba1f;color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.auth-title{font-size:clamp(28px,4vw,34px);line-height:1.05;margin-top:8px}.auth-subtitle{color:#6a778a;color:var(--text-soft);margin-top:10px}.form-grid{grid-gap:14px;display:grid;gap:14px;margin-top:24px}.form-grid-tight{margin-top:0}.field{grid-gap:6px;display:grid;gap:6px}.field label{color:#6a778a;color:var(--text-soft);font-size:13px;font-weight:600}.input,.select{background:#f7f8fb;background:var(--surface-soft);border:1px solid #d9dee8;border:1px solid var(--border);border-radius:10px;color:#1d2a3b;color:var(--text);padding:11px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.input:focus,.select:focus{border-color:#1f3c63;border-color:var(--primary);box-shadow:0 0 0 3px #124a9b24;outline:none}.btn{border:0;border-radius:11px;cursor:pointer;font-weight:600;padding:11px 14px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.btn-primary{background:linear-gradient(135deg,#1f3c63,#122744);background:linear-gradient(135deg,var(--primary),var(--primary-strong));box-shadow:0 10px 20px #09336f33;color:#fff}.btn-secondary{background:linear-gradient(135deg,#177f74,#0a5f56);box-shadow:0 10px 20px #0a5f5633;color:#fff}.btn-ghost{background:#f0f4f8;border:1px solid #d9dee8;border:1px solid var(--border);color:#1d2a3b;color:var(--text)}.error-text{color:#b83a3a;color:var(--danger);font-size:13px;font-weight:600}.workspace-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.workspace-sidebar{background:linear-gradient(180deg,#f3f5f8,#eceff4);border-right:1px solid #d9dee8;border-right:1px solid var(--border);gap:18px;padding:16px 14px}.sidebar-brand,.workspace-sidebar{display:flex;flex-direction:column}.sidebar-brand{align-items:center;border-bottom:1px solid #d9dee8;border-bottom:1px solid var(--border);gap:8px;padding:10px 8px 14px;text-align:center}.sidebar-brand-logo{display:block;height:auto;object-fit:contain;width:min(150px,100%)}.sidebar-brand-text{grid-gap:2px;display:grid;gap:2px;justify-items:center}.sidebar-brand-text strong{color:#0f5fa8;font-size:15px}.sidebar-brand-text span{color:#6a778a;color:var(--text-soft);font-size:12px}.sidebar-groups{grid-gap:12px;display:grid;gap:12px}.sidebar-group-title{color:#8a95a8;font-size:11px;font-weight:800;letter-spacing:.08em;margin:0 8px 6px;text-transform:uppercase}.sidebar-links{grid-gap:5px;display:grid;gap:5px}.sidebar-link{align-items:center;background:#0000;border:1px solid #0000;border-radius:10px;color:#39485d;cursor:pointer;display:flex;font-weight:700;gap:10px;padding:10px 12px;text-align:left;transition:all .2s ease}.sidebar-link:hover{background:#1f3c6314}.sidebar-link.active{background:#fff4cc;background:var(--accent-soft);border-color:#f0d36f;box-shadow:inset 3px 0 0 #f0ba1f;box-shadow:inset 3px 0 0 var(--accent);color:#273449}.sidebar-link-icon{background:#1227440f;border-radius:10px;color:#355078;display:grid;flex-shrink:0;height:34px;place-items:center;transition:inherit;width:34px}.sidebar-link-icon svg{height:18px;width:18px}.sidebar-link-label{flex:1 1}.sidebar-link:hover .sidebar-link-icon{background:#1f3c6324;color:#1f3c63}.sidebar-link.active .sidebar-link-icon{background:linear-gradient(135deg,#fff6c8,#f4d35c);box-shadow:0 8px 18px #d0ab2638;color:#1c3152}.sidebar-footer{grid-gap:10px;border-top:1px solid #d9dee8;border-top:1px solid var(--border);display:grid;gap:10px;margin-top:auto;padding-top:12px}.sidebar-user{align-items:center;display:flex;gap:10px;padding:8px}.sidebar-user-meta{grid-gap:2px;display:grid;gap:2px}.sidebar-avatar{background:#dfe5ef;border-radius:50%;color:#45566e;display:grid;font-weight:800;height:36px;place-items:center;width:36px}.sidebar-user strong{display:block;font-size:14px}.sidebar-user p{color:#0f5fa8;font-size:12px;font-weight:700}.sidebar-user span{color:#6a778a;color:var(--text-soft);font-size:11px}.sidebar-footer .btn-ghost{width:100%}.workspace-main{display:flex;flex-direction:column;min-height:100vh;padding:18px 20px 24px}.workspace-main:has(.quotes-page-recent){height:100vh;overflow:hidden}.workspace-topbar{align-items:center;display:flex;gap:16px;justify-content:space-between}.workspace-title{font-size:clamp(26px,4vw,36px);margin-top:4px}.workspace-datetime{align-items:center;color:#6a778a;color:var(--text-soft);display:flex;font-size:14px;font-weight:600;gap:12px}.workspace-datetime strong{background:#1f3048;border-radius:8px;color:#fff;letter-spacing:.02em;padding:6px 10px}.workspace-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.metric-card{grid-gap:8px;background:#ffffffeb;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 18px #14233b0a;display:grid;gap:8px;min-height:112px;place-content:center;text-align:center}.metric-card strong{font-family:Sora,Segoe UI,Arial,sans-serif;font-size:clamp(28px,3vw,36px);line-height:1}.metric-card span{color:#6a778a;color:var(--text-soft);font-size:14px;font-weight:600}.panel{animation:panel-in .32s ease;background:#fffffff5;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);box-shadow:0 12px 26px #14233b0f;margin-top:14px;padding:20px}.workspace-panel{margin-top:16px}.workspace-panel-fill{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.workspace-panel-fill:has(.quotes-page-recent){overflow:hidden}.section-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.section-note{color:#6a778a;color:var(--text-soft);font-size:14px}.calendar-wrap{margin-top:14px}.calendar-head-actions{display:flex;flex-wrap:wrap;gap:10px}.calendar-ops-summary{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.calendar-board-card,.calendar-ops-stat,.calendar-sidebar-card{background:linear-gradient(180deg,#fffffffa,#f7fafff5);border:1px solid #d9dee8;border:1px solid var(--border);border-radius:18px;box-shadow:0 18px 38px #12223a14}.calendar-ops-stat{grid-gap:6px;display:grid;gap:6px;padding:16px 18px}.calendar-ops-stat strong{font-family:Sora,Segoe UI,Arial,sans-serif;font-size:clamp(30px,3vw,38px);line-height:1}.calendar-ops-stat span{color:#6a778a;color:var(--text-soft);font-weight:600}.calendar-ops-layout{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.5fr) minmax(360px,.92fr);margin-top:18px}.calendar-board-card,.calendar-sidebar-card{grid-gap:14px;display:grid;gap:14px;padding:16px}.calendar-board-head,.calendar-focus-title-row,.calendar-sidebar-section-head,.calendar-sidebar-top{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.calendar-filter-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.calendar-ops-wrap{margin-top:0}.calendar-ops-wrap .fc{background:#fff;border-radius:16px;padding:10px}.calendar-ops-wrap .fc-toolbar{margin-bottom:14px!important}.calendar-ops-wrap .fc-scrollgrid{border-radius:16px;overflow:hidden}.calendar-ops-wrap .fc-theme-standard td,.calendar-ops-wrap .fc-theme-standard th{border-color:#d9dee8;border-color:var(--border)}.calendar-ops-wrap .fc-col-header-cell{background:#f7faff}.calendar-ops-wrap .fc-daygrid-day-frame{background:linear-gradient(180deg,#fff,#fbfdff);min-height:118px}.calendar-ops-wrap .fc-daygrid-day-number{color:#122744;color:var(--primary-strong);font-weight:700}.calendar-ops-wrap .fc-day-other .fc-daygrid-day-number{color:#aab4c4}.calendar-ops-wrap .fc-daygrid-event{background:#0000;border:0;margin-top:4px;padding:0}.calendar-event-chip{grid-gap:3px;border-radius:12px;box-shadow:0 8px 18px #152b4a29;color:#fff;display:grid;gap:3px;padding:6px 8px}.calendar-event-chip strong{font-size:12px;line-height:1.25;white-space:normal}.calendar-event-chip-type{font-size:10px;font-weight:800;letter-spacing:.04em;opacity:.92;text-transform:uppercase}.calendar-event-chip-planned{background:linear-gradient(135deg,#194d90,#0f3c75)}.calendar-event-chip-in_progress{background:linear-gradient(135deg,#c4831c,#9f5f00)}.calendar-event-chip-completed{background:linear-gradient(135deg,#1a8b63,#0d6650)}.calendar-event-chip-cancelled{background:linear-gradient(135deg,#8d98a8,#5f6d82)}.calendar-day-selected .fc-daygrid-day-frame{background:linear-gradient(180deg,#124a9b24,#124a9b0d)}.calendar-selected-label{color:#9f7a00;display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.calendar-board-head h4,.calendar-focus-title-row h4,.calendar-sidebar-top h4{margin:4px 0 0}.calendar-day-activity-list,.calendar-focus-card,.calendar-upcoming-card{background:#fffffff2;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:16px;padding:14px}.calendar-day-activity-list{grid-gap:10px;display:grid;gap:10px;max-height:360px;overflow:auto}.calendar-helper-text,.calendar-sidebar-section-head span{color:#6a778a;color:var(--text-soft);font-size:12px;font-weight:600}.calendar-empty-card{grid-gap:6px;background:#fbfdff;border:1px dashed #c8d6ea;border-radius:14px;display:grid;gap:6px;padding:16px}.calendar-empty-card strong{color:#1d2a3b;color:var(--text)}.calendar-empty-card span{color:#6a778a;color:var(--text-soft);font-size:13px;line-height:1.5}.calendar-activity-card,.calendar-upcoming-item{grid-gap:8px;background:#fff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:14px;cursor:pointer;display:grid;gap:8px;padding:12px;text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.calendar-activity-card:hover,.calendar-upcoming-item:hover{border-color:#98b7df;box-shadow:0 10px 24px #142b4b1a;transform:translateY(-1px)}.calendar-activity-card.active{background:linear-gradient(135deg,#f4f9ff,#eef5ff);border-color:#0000;box-shadow:inset 0 0 0 1px #124a9b33,0 12px 24px #124a9b1a}.calendar-activity-card-top{align-items:center;display:flex;gap:8px;justify-content:space-between}.calendar-activity-type{color:#2b5f99;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.calendar-activity-meta{display:flex;flex-wrap:wrap;gap:8px}.calendar-activity-meta span{background:#f1f6fb;border-radius:999px;color:#6a778a;color:var(--text-soft);font-size:12px;font-weight:700;padding:4px 8px}.status-pill-planned{background:#e4efff;color:#1d5a9e;text-transform:capitalize}.status-pill-in_progress{background:#fff0d6;color:#9c6103;text-transform:capitalize}.status-pill-completed{background:#dff7e8;color:#147845;text-transform:capitalize}.status-pill-cancelled{background:#ebedf2;color:#5d6673;text-transform:capitalize}.calendar-focus-card{grid-gap:12px;display:grid;gap:12px}.calendar-focus-title-row p{color:#6a778a;color:var(--text-soft);font-size:13px;font-weight:700;margin:4px 0 0}.calendar-detail-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-detail-item{grid-gap:6px;background:#f8fbff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:14px;display:grid;gap:6px;padding:10px 12px}.calendar-detail-item span,.calendar-note-card span{color:#6a778a;color:var(--text-soft);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.calendar-detail-item strong{color:#1d2a3b;color:var(--text);overflow-wrap:anywhere}.calendar-note-card{grid-gap:8px;background:#fff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:14px;display:grid;gap:8px;padding:12px}.calendar-note-card p{color:#1d2a3b;color:var(--text);line-height:1.6;margin:0;white-space:pre-wrap}.calendar-note-card-completion{background:linear-gradient(180deg,#f7fff9,#fafdff)}.calendar-note-card strong{color:#2f5d96;font-size:12px}.calendar-proof-card{grid-gap:10px;background:#fff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:16px;display:grid;gap:10px;padding:12px}.calendar-proof-card img{border:1px solid #d9dee8;border:1px solid var(--border);border-radius:14px;max-height:220px;object-fit:cover;width:100%}.calendar-inline-link{color:#145b96;font-size:12px;font-weight:700;text-decoration:none}.calendar-inline-link:hover{text-decoration:underline}.calendar-action-stack,.calendar-form,.calendar-upcoming-list{grid-gap:10px;display:grid;gap:10px}.calendar-modal-card{width:min(760px,100%)}.calendar-form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-field-span-2{grid-column:span 2}.calendar-textarea{min-height:124px;resize:vertical}.calendar-upcoming-item span{color:#6a778a;color:var(--text-soft);font-size:12px;font-weight:700}@media (max-width:1200px){.calendar-ops-layout{grid-template-columns:1fr}}@media (max-width:640px){.calendar-detail-grid,.calendar-form-grid,.calendar-ops-summary{grid-template-columns:1fr}.calendar-field-span-2{grid-column:auto}.calendar-board-head,.calendar-focus-title-row,.calendar-sidebar-section-head,.calendar-sidebar-top{align-items:flex-start;flex-direction:column}.calendar-filter-pills{justify-content:flex-start}}.quotes-layout{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 320px;margin-top:18px}.quotes-page{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.quote-review-layout,.quotes-page-recent{height:100%;overflow:hidden}.quote-review-layout{align-items:stretch;flex:1 1 auto;grid-template-columns:minmax(0,1.72fr) minmax(360px,.82fr);min-height:0}.quote-mode-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.quote-review-shell{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0}.quote-review-toolbar{grid-gap:8px;display:grid;gap:8px;grid-template-columns:minmax(240px,1fr) auto auto}.quote-list-actions{grid-template-columns:repeat(3,minmax(84px,104px))}.quote-review-card{display:flex;flex-direction:column;height:100%;max-height:none;min-height:0;overflow:hidden}.quote-review-card h4,.quote-review-shell h4{margin:0}.quote-review-card .stat-row{align-items:start;display:grid;grid-template-columns:96px minmax(0,1fr)}.quote-review-card .stat-row strong{overflow-wrap:anywhere;text-align:left}.quote-review-card .btn{width:100%}.quote-confirm-modal{width:min(460px,100%)}.quote-review-items{grid-gap:10px;border-top:1px solid #d9dee8;border-top:1px solid var(--border);display:grid;flex:1 1 auto;gap:10px;margin-top:6px;min-height:0;overflow:auto;padding-right:4px;padding-top:8px}.quotes-page-recent .quote-review-items{flex:0 0 auto;min-height:auto;overflow:hidden;padding-right:0}.quote-review-shell .materials-table-wrap{flex:1 1 auto;max-height:none;min-height:0}.quotes-page-recent .quote-review-shell .materials-table-wrap{height:100%}.quote-review-item{grid-gap:8px;background:#fff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:12px;display:grid;gap:8px;padding:12px}.quote-review-item-top{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.quote-review-item-top strong{color:#1d2a3b;color:var(--text)}.quote-review-item-top span{color:#122744;color:var(--primary-strong);font-weight:800;white-space:nowrap}.quote-review-item-meta{display:flex;flex-wrap:wrap;gap:8px}.quote-review-item-meta span{background:#f3f7fc;border-radius:999px;color:#6a778a;color:var(--text-soft);font-size:12px;font-weight:700;padding:4px 8px}.result-card{grid-gap:10px;align-content:start;background:#f7f8fb;background:var(--surface-soft);border:1px solid #d9dee8;border:1px solid var(--border);border-radius:14px;display:grid;gap:10px;padding:14px}.stat-row{color:#6a778a;color:var(--text-soft);display:flex;font-weight:600;gap:12px;justify-content:space-between}.stat-row strong{color:#1d2a3b;color:var(--text)}.items-editor{grid-gap:8px;background:#fbfdff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:12px;display:grid;gap:8px;padding:12px}.items-editor-title{font-family:Sora,Segoe UI,Arial,sans-serif;font-size:15px;font-weight:700}.items-editor-note{color:#6a778a;color:var(--text-soft);font-size:13px}.quote-stepper{display:flex;flex-wrap:wrap;gap:8px}.step-pill{background:#f5f8fc;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:999px;color:#6a778a;color:var(--text-soft);cursor:pointer;font-size:12px;font-weight:700;padding:6px 11px}.step-pill.active{background:linear-gradient(135deg,#1f3c63,#122744);background:linear-gradient(135deg,var(--primary),var(--primary-strong));border-color:#0000;color:#fff}.step-pill:disabled{background:#f1f4f8;color:#7c8aa1;cursor:not-allowed;opacity:.45}.items-grid{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:48px 54px minmax(220px,1fr) 100px 110px 140px}.items-grid-head{border-bottom:1px solid #d9dee8;border-bottom:1px solid var(--border);border-top:1px solid #d9dee8;border-top:1px solid var(--border);color:#6a778a;color:var(--text-soft);font-size:12px;font-weight:700;padding:8px 0}.items-grid-row{padding:4px 0}.items-grid-row .input{padding:8px 9px}.item-no-col{grid-gap:2px;display:grid;gap:2px}.link-mini{background:#0000;border:0;color:#b83a3a;color:var(--danger);cursor:pointer;font-size:11px;padding:0;text-align:left}.material-pick-select{font-size:12px;margin-bottom:6px;padding:7px 9px}.qty-wrap{position:relative}.qty-wrap .input[disabled]{background:#eef3fa;color:#61728a}.auto-chip{color:#2f5d96;font-size:11px;font-weight:700;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.step-nav{display:flex;gap:8px;justify-content:space-between;padding-top:6px}.materials-card{grid-gap:12px;background:#fbfdff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:12px;display:grid;gap:12px;margin-top:14px;padding:14px}.materials-card.quote-review-shell{display:flex}.materials-form{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1.8fr .8fr .8fr .8fr 1fr .8fr}.package-form{grid-template-columns:1.6fr 1fr .8fr}.materials-table-wrap{border:1px solid #d9dee8;border:1px solid var(--border);border-radius:10px;max-height:min(62vh,560px);overflow:auto}.materials-table{border-collapse:collapse;font-size:14px;width:100%}.materials-table thead th{background:#f7f9fc;position:-webkit-sticky;position:sticky;top:0;z-index:1}.materials-table td,.materials-table th{border-top:1px solid #d9dee8;border-top:1px solid var(--border);padding:8px;text-align:left;vertical-align:middle}.materials-actions{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(96px,112px))}.materials-actions .btn{justify-content:center;min-height:40px;text-align:center;white-space:nowrap;width:100%}.admin-summary-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:14px}.admin-summary-card{grid-gap:8px;background:#fffffff0;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 18px #14233b0a;display:grid;gap:8px;padding:16px}.admin-summary-card strong{font-family:Sora,Segoe UI,Arial,sans-serif;font-size:28px;line-height:1}.admin-summary-card span{color:#6a778a;color:var(--text-soft);font-size:14px;font-weight:600}.admin-toolbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.admin-toolbar-filters{grid-gap:8px;display:grid;flex:1 1 560px;gap:8px;grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(150px,.7fr))}.admin-toolbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.user-form-grid{grid-gap:10px;background:#fbfdff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:12px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.user-editor-modal{background:radial-gradient(50rem 16rem at -10% -30%,#1f3c6314,#0000 45%),radial-gradient(34rem 14rem at 120% 0,#f0ba1f1f,#0000 48%),#fffffffa;gap:24px;max-height:min(90vh,860px);overflow:auto;padding:30px;width:min(900px,100%)}.user-modal-header{grid-gap:8px;border-bottom:1px solid #d9dee8e6;display:grid;gap:8px;padding:0 0 14px}.user-modal-header h4{color:#18355a;font-size:28px}.user-modal-header p{font-size:15px;line-height:1.7;max-width:620px}.user-modal-form{grid-gap:18px;background:#0000;border:0;display:grid;gap:18px;padding:0}.user-modal-section{grid-gap:16px;background:linear-gradient(180deg,#f7f9fcfa,#fffffffa);border:1px solid #cdd9eaf2;border-radius:20px;box-shadow:0 12px 28px #14233b0d;display:grid;gap:16px;padding:20px}.user-modal-section-head{grid-gap:6px;display:grid;gap:6px}.user-modal-section-head strong{color:#17385f;font-size:17px}.user-modal-section-head span{color:#6a778a;color:var(--text-soft);font-size:13px;line-height:1.6}.user-modal-fields{grid-gap:16px 14px;align-items:start;display:grid;gap:16px 14px;grid-template-columns:repeat(3,minmax(0,1fr))}.field>span{color:#6a778a;color:var(--text-soft);font-size:13px;font-weight:700}.user-modal-fields .input,.user-modal-fields .select{background:#fff;min-height:46px}.user-field-span-2{grid-column:span 2}.generated-password-card{grid-gap:14px;background:linear-gradient(180deg,#f4fafffa,#fffffffa);border:1px solid #c2d7f0f2;border-radius:20px;box-shadow:inset 0 1px 0 #ffffffb3,0 12px 28px #17385f0f;display:grid;gap:14px;padding:20px}.generated-password-label{grid-gap:6px;display:grid;gap:6px}.generated-password-label strong{color:#17385f;font-size:17px}.generated-password-label span{color:#6a778a;color:var(--text-soft);font-size:13px;font-weight:500;line-height:1.6}.generated-password-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1.2fr) auto auto}.generated-password-row .input{background:#fff;min-height:48px}.generated-password-row .btn{min-height:48px;min-width:96px}.user-modal-form .error-text{padding:0 4px}.user-modal-form .modal-actions{border-top:1px solid #d9dee8e6;margin-top:2px;padding-top:16px}.user-modal-form .modal-actions .btn{min-height:48px;min-width:126px}.user-blocker-modal{width:min(720px,100%)}.user-blocker-groups{grid-gap:14px;display:grid;gap:14px}.user-blocker-group{grid-gap:10px;background:linear-gradient(180deg,#f7f9fcfa,#fffffffa);border:1px solid #cdd9eaf2;border-radius:16px;display:grid;gap:10px;padding:14px}.user-blocker-group strong{color:#17385f;font-size:15px}.user-blocker-list{grid-gap:10px;display:grid;gap:10px}.user-blocker-item{grid-gap:6px;background:#fff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:14px;display:grid;gap:6px;padding:12px 14px}.user-blocker-item-title{color:#1d2a3b;color:var(--text);font-weight:800}.user-blocker-item-meta{display:flex;flex-wrap:wrap;gap:8px}.user-blocker-item-meta span{background:#f3f7fc;border-radius:999px;font-weight:700;padding:4px 8px}.table-subtext,.user-blocker-item-meta span{color:#6a778a;color:var(--text-soft);font-size:12px}.table-subtext{display:block;margin-top:4px}.permission-pill,.role-pill,.status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;line-height:1.2;padding:5px 10px}.role-pill-admin{background:#fff3ca;color:#7d5b00}.role-pill-field_work{background:#dcefff;color:#18568e}.role-pill-generic{background:#eceff4;color:#41556f}.status-pill-active{background:#dff7e8;color:#147845;text-transform:capitalize}.status-pill-inactive{background:#fde5e5;color:#a03636;text-transform:capitalize}.permission-pill{background:#eef3fb;color:#28476e}.empty-state-cell{color:#6a778a;color:var(--text-soft);padding:18px 12px;text-align:center}.role-card{align-content:start}.role-form-card{grid-gap:12px;background:#fbfdff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:12px;display:grid;gap:12px;padding:14px}.role-form-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1.4fr .7fr .8fr}.role-key-preview{background:#eef3fa;color:#61728a}.role-description-input{min-height:92px;resize:vertical}.role-modules-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.module-check-card{align-items:flex-start;background:#fff;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:12px;display:flex;gap:10px;padding:12px}.module-check-card input{margin-top:2px}.module-check-card strong{display:block;font-size:14px}.module-check-card span{color:#6a778a;color:var(--text-soft);display:block;font-size:12px;font-weight:500;margin-top:4px}.role-card-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.role-card-head h4{font-size:20px}.role-counts{grid-gap:3px;display:grid;gap:3px}.permissions-list{display:flex;flex-wrap:wrap;gap:8px}.audit-detail{min-width:240px;white-space:normal}.btn-danger{background:linear-gradient(135deg,#c94b4b,#992f2f);box-shadow:0 10px 20px #992f2f38;color:#fff}.template-header-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.template-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.template-inline-actions{align-items:center;display:flex;gap:8px;width:100%}.template-inline-actions .input{flex:1 1 auto}.template-items-form{grid-template-columns:.55fr 2fr .8fr .8fr 1fr .9fr}.template-group-select optgroup{color:#2f5d96;font-weight:800}.template-sections-card{margin-top:4px}.template-edit-stack{grid-gap:6px;display:grid;gap:6px}.template-row-description{grid-gap:3px;display:grid;gap:3px}.template-row-description strong{font-size:14px}.template-row-description span{color:#6a778a;color:var(--text-soft);font-size:12px}.template-picker-separator{align-items:center;color:#6a778a;color:var(--text-soft);display:flex;font-size:11px;font-weight:700;gap:10px;letter-spacing:.04em;text-transform:uppercase}.template-picker-separator:after,.template-picker-separator:before{background:#d9dee8;background:var(--border);content:"";flex:1 1 auto;height:1px}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121c2b6b;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:1000}.modal-card{grid-gap:18px;background:#fffffffa;border:1px solid #d9dee8;border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 50px #111f3433;display:grid;gap:18px;padding:20px;width:min(480px,100%)}.modal-copy{grid-gap:8px;display:grid;gap:8px}.modal-copy p{color:#6a778a;color:var(--text-soft);line-height:1.5}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.fc .fc-toolbar-title{font-family:Sora,Segoe UI,Arial,sans-serif;font-size:1.18rem}.fc .fc-button{background:#f0f4fa;border:0;color:#1d2a3b;color:var(--text)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background:#1f3c63;background:var(--primary)}.fc .fc-daygrid-day.fc-day-today{background:#124a9b17}@media (max-width:1100px){.workspace-shell{grid-template-columns:1fr}.workspace-sidebar{border-bottom:1px solid #d9dee8;border-bottom:1px solid var(--border);border-right:0}.sidebar-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-footer{margin-top:0}}@media (max-width:900px){.workspace-main{padding:14px 12px 18px}.workspace-topbar{align-items:flex-start;flex-direction:column}.workspace-datetime{flex-wrap:wrap;gap:10px}.workspace-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-groups{gap:10px}.quote-review-toolbar,.quotes-layout,.sidebar-groups{grid-template-columns:1fr}.calendar-head-actions{width:100%}.calendar-head-actions .btn{flex:1 1 160px}.calendar-detail-grid,.calendar-form-grid,.calendar-ops-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-field-span-2{grid-column:span 2}.items-grid{grid-template-columns:44px 48px 1fr}.items-grid-head{display:none}.items-grid-row{border-top:1px solid #d9dee8;border-top:1px solid var(--border);margin-top:2px;padding-top:10px}.items-grid-row>:nth-child(4),.items-grid-row>:nth-child(5),.items-grid-row>:nth-child(6){grid-column:1/-1}.admin-toolbar-filters,.materials-form,.role-form-grid,.user-form-grid,.user-modal-fields{grid-template-columns:1fr}.user-field-span-2{grid-column:auto}.generated-password-row{grid-template-columns:1fr}.user-editor-modal{padding:22px}.user-modal-header h4{font-size:24px}.admin-toolbar-actions{width:100%}.template-header-grid{grid-template-columns:1fr}.template-inline-actions{align-items:stretch;flex-direction:column}}@media (max-width:680px){.workspace-metrics{grid-template-columns:1fr}.auth-card{padding:22px}.panel{padding:14px}}.login-city-shell{background:#ececec;display:grid;min-height:100vh;padding:24px;place-items:center}.login-city-card{background:#f0f0f0;border:1px solid #d4d8de;border-radius:12px;box-shadow:0 8px 20px #00000014;padding:46px 46px 38px;width:min(500px,100%)}.login-city-brand{text-align:center}.login-city-brand-image{display:block;height:auto;margin:0 auto 18px;object-fit:contain;width:min(250px,100%)}.login-city-logo{color:#0f5fa8;font-family:Manrope,Segoe UI,Arial,sans-serif;font-size:22px;font-weight:800;letter-spacing:.02em}.login-city-title{color:#0f5fa8;font-size:42px;font-weight:800;letter-spacing:.35em;margin-top:18px;padding-left:.35em}.login-city-subtitle{color:#6a7687;font-size:16px;letter-spacing:.03em;margin-top:8px}.login-city-form{grid-gap:14px;display:grid;gap:14px;margin:34px auto 0;width:min(430px,100%)}.login-city-form label{color:#374255;font-size:16px}.login-city-input{background:#f5f5f5;border:1px solid #c8ced8;font-size:16px;padding:13px 14px}.login-city-input:focus{border-color:#0f5fa8;box-shadow:0 0 0 2px #0f5fa833}.login-city-password-wrap{position:relative}.login-city-password-wrap .login-city-input{padding-right:70px}.login-city-eye{background:#0000;border:0;color:#8d97a5;cursor:pointer;font-size:13px;font-weight:700;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.login-city-remember{align-items:center;color:#374255;display:inline-flex;font-size:15px;gap:9px;margin-top:4px}.login-city-remember input{height:17px;width:17px}.login-city-submit{background:#0f5fa8;box-shadow:none;color:#fff;font-size:16px;font-weight:800;margin-top:2px}.login-city-submit:hover{background:#0b4a84;transform:none}.login-city-footer{color:#7d8795;font-size:12px;margin-top:42px;text-align:center}.login-password-modal{width:min(520px,100%)}.login-password-user{color:#0f5fa8;font-weight:700}.login-password-form{grid-gap:12px;display:grid;gap:12px}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
/*# sourceMappingURL=main.244542a9.css.map*/