*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f7fb;color:#102033}.loading-screen{min-height:100vh;display:grid;place-items:center;font-weight:800;color:#143d63}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:radial-gradient(circle at 10% 10%,rgba(18,105,199,.2),transparent 28%),linear-gradient(135deg,#0f2742,#143d63)}.login-left{color:#fff;padding:70px;display:flex;flex-direction:column;justify-content:center}.login-logo{width:72px;height:72px;background:#fff;color:#143d63;display:grid;place-items:center;border-radius:24px;font-weight:900;font-size:36px;margin-bottom:24px}.login-left h1{font-size:58px;margin:0;letter-spacing:3px}.login-left p{margin:12px 0 30px;color:#ffffffbf;font-size:18px}.login-points{display:flex;gap:12px;flex-wrap:wrap}.login-points span{background:#ffffff21;border:1px solid rgba(255,255,255,.16);padding:10px 14px;border-radius:999px;font-size:13px}.login-card{align-self:center;justify-self:center;width:min(420px,calc(100% - 38px));background:#fff;border-radius:28px;padding:34px;box-shadow:0 30px 80px #00000038}.lock-circle{width:54px;height:54px;background:#eef6ff;color:#1269c7;display:grid;place-items:center;border-radius:18px;margin-bottom:16px}.login-card h2{margin:0;font-size:30px}.login-card p{color:#607086;margin:8px 0 24px}.login-card label,.field,.simple-form label{display:block;font-size:13px;color:#52657d;font-weight:700}.login-card input,input,select,textarea{width:100%;border:1px solid #dfe7f1;background:#f8fbff;border-radius:14px;padding:12px 13px;outline:none;font-size:14px;color:#102033}textarea{min-height:84px;resize:vertical}.login-card input:focus,input:focus,select:focus,textarea:focus{border-color:#1269c7;box-shadow:0 0 0 4px #1269c71a}.login-btn{width:100%;margin-top:20px}.demo-login{display:block;text-align:center;color:#7b8a9d;margin-top:15px}.asseta-page{min-height:100vh;display:flex}.sidebar{width:260px;background:linear-gradient(180deg,#0f2742,#143d63);color:#fff;padding:22px;display:flex;flex-direction:column;gap:30px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px}.brand-icon{width:44px;height:44px;border-radius:16px;background:#fff;color:#143d63;display:grid;place-items:center;font-weight:900;font-size:22px}.brand strong{display:block;font-size:20px;letter-spacing:1px}.brand span{font-size:12px;opacity:.75}nav{display:grid;gap:8px}nav a{display:flex;align-items:center;gap:10px;padding:13px 14px;border-radius:14px;color:#ffffffc7;text-decoration:none;cursor:pointer}nav a.active,nav a:hover{background:#ffffff24;color:#fff}.main{flex:1;padding:24px;max-width:calc(100vw - 260px)}.user-strip{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:14px;color:#607086;font-size:13px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:18px}.topbar h1{margin:8px 0 0;font-size:28px}.topbar p{margin:6px 0 0;color:#607086}button,.small-btn,.link-btn{border:0;background:#1269c7;color:#fff;padding:11px 16px;border-radius:13px;font-weight:700;cursor:pointer;box-shadow:0 10px 25px #1269c72e;display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap}button:disabled{opacity:.65;cursor:not-allowed}.secondary,.logout-btn{background:#eef3f8;color:#143d63;box-shadow:none}.icon-btn{width:38px;height:38px;padding:0;display:grid;place-items:center}.small-btn{padding:8px 11px;font-size:12px;box-shadow:none}.link-btn{background:transparent;color:#1269c7;box-shadow:none;padding:0;display:inline}.danger{background:#fff0f0;color:#c12121}.cards,.project-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.card,.summary-card{background:#fff;padding:20px;border-radius:22px;border:1px solid #e7edf5;box-shadow:0 18px 40px #192d4612;display:flex;gap:14px;align-items:center}.card-icon{width:48px;height:48px;border-radius:17px;background:#eef6ff;color:#1269c7;display:grid;place-items:center;flex:0 0 auto}.card span,.card small,.summary-card span{display:block;color:#6b7b91}.card strong,.summary-card strong{display:block;font-size:20px;margin:3px 0}.panel{background:#fff;border-radius:24px;border:1px solid #e7edf5;box-shadow:0 18px 40px #192d4612;padding:22px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-head h2{margin:0}.panel-head span{color:#607086;background:#f3f7fc;padding:8px 12px;border-radius:999px;font-size:13px}.filters{display:grid;grid-template-columns:1fr 220px auto;gap:12px}table{width:100%;border-collapse:separate;border-spacing:0 8px;font-size:13px}th{text-align:left;color:#607086;padding:9px 10px;white-space:nowrap}td{background:#f8fbff;border-top:1px solid #edf2f8;border-bottom:1px solid #edf2f8;padding:12px 10px;vertical-align:middle;white-space:nowrap}td:first-child{border-left:1px solid #edf2f8;border-radius:14px 0 0 14px}td:last-child{border-right:1px solid #edf2f8;border-radius:0 14px 14px 0}td small{display:block;color:#7b8a9d;margin-top:4px}.row-actions{display:flex;gap:6px}.badge{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#eef3f8;color:#143d63;font-size:12px;font-weight:800}.status-CONSTRUCTION{background:#e8f3ff;color:#1269c7}.status-COMPLETED,.status-HANDED_OVER{background:#e9f9ef;color:#17803d}.status-ON_HOLD{background:#fff7e6;color:#a86600}.status-CANCELLED{background:#fff0f0;color:#bb1e1e}.status-DRAFT{background:#eef3f8;color:#607086}.empty-state,.empty-line{text-align:center;padding:34px;color:#607086}.empty-state h3{color:#102033}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a192d7a;display:grid;place-items:center;padding:20px;z-index:1000}.modal{width:min(1200px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:26px;box-shadow:0 30px 90px #00000040}.modal-head{padding:24px 26px 12px;display:flex;justify-content:space-between;gap:18px;position:sticky;top:0;background:#fff;z-index:2}.modal-head h2{margin:0}.modal-head p{margin:5px 0 0;color:#607086}.form-sections{padding:0 26px 18px;display:grid;gap:16px}.form-section{border:1px solid #e7edf5;border-radius:20px;padding:18px;background:#fbfdff}.form-section h3{margin:0 0 14px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.field span,.simple-form label span{display:block;margin-bottom:6px}.field.wide{grid-column:span 2}.modal-actions{padding:16px 26px 24px;display:flex;justify-content:flex-end;gap:10px}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.info-card{background:#f8fbff;border:1px solid #e7edf5;border-radius:18px;padding:15px}.info-card.wide{grid-column:span 4}.info-card label{color:#607086;font-size:12px}.info-card p{margin:5px 0 0;font-weight:800}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.active-tab{background:#1269c7;color:#fff}.upload-box,.simple-form{background:#f8fbff;border:1px dashed #cbd9e9;border-radius:20px;padding:16px;margin-bottom:16px}.upload-box{display:grid;grid-template-columns:180px 1fr 1fr 1fr auto;gap:10px}.attachment-list,.simple-list{display:grid;gap:10px}.attachment-item,.simple-row{background:#f8fbff;border:1px solid #e7edf5;border-radius:18px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.attachment-item small{display:block;color:#607086;margin-top:4px}.simple-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.error{background:#fff0f0;color:#bb1e1e;border:1px solid #ffd0d0;padding:14px 16px;border-radius:16px;margin-bottom:18px}@media (max-width: 1100px){.cards,.project-summary-grid,.form-grid,.detail-grid,.simple-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-box{grid-template-columns:1fr}}@media (max-width: 900px){.login-page{grid-template-columns:1fr}.login-left{padding:35px}.asseta-page{display:block}.sidebar{width:100%;height:auto;position:static}.main{max-width:none}.cards,.project-summary-grid,.form-grid,.detail-grid,.simple-grid,.filters{grid-template-columns:1fr}.field.wide,.info-card.wide{grid-column:span 1}.topbar{display:grid}}body{font-size:13px}.sidebar{width:218px!important;padding:14px!important;gap:16px!important}.brand-icon{width:36px!important;height:36px!important;border-radius:12px!important;font-size:18px!important}.brand strong{font-size:17px!important}.brand span{font-size:11px!important}nav{gap:5px!important}nav a{padding:9px 10px!important;border-radius:11px!important;font-size:12.5px!important}.main{padding:14px!important;max-width:calc(100vw - 218px)!important}.user-strip{margin-bottom:8px!important;font-size:12px!important}.topbar,.compact-topbar{margin-bottom:12px!important}.topbar h1,.compact-topbar h1{font-size:21px!important;margin:0!important}.topbar p,.compact-topbar p{margin-top:3px!important;font-size:12.5px!important}.panel,.compact-panel{padding:14px!important;border-radius:16px!important;margin-bottom:12px!important}.panel-head,.compact-head{margin-bottom:10px!important}.panel-head h2,.compact-head h2{font-size:16px!important}.panel-head span,.compact-head span{padding:5px 9px!important;font-size:11.5px!important}.cards,.project-summary-grid{gap:10px!important;margin-bottom:12px!important}.card,.summary-card{padding:13px!important;border-radius:15px!important;gap:10px!important}.card-icon{width:38px!important;height:38px!important;border-radius:13px!important}.card strong,.summary-card strong{font-size:16px!important}.card span,.card small,.summary-card span{font-size:11.5px!important}button,.small-btn,.link-btn{padding:8px 11px!important;border-radius:10px!important;font-size:12px!important}.small-btn{padding:6px 9px!important}input,select,textarea{padding:8px 10px!important;border-radius:10px!important;font-size:12.5px!important}textarea{min-height:62px!important}.filters,.compact-filters{grid-template-columns:1fr 190px 170px auto!important;gap:8px!important}.compact-form{display:grid;gap:8px}.upload-form{grid-template-columns:220px 170px 150px 1fr 210px auto!important}.permit-form{grid-template-columns:210px 170px 120px 140px 140px 160px 130px 1fr auto!important}.table-wrap{overflow-x:auto}table{border-spacing:0 5px!important;font-size:12px!important}th{padding:6px 8px!important;font-size:11.5px!important}td{padding:7px 8px!important}td:first-child{border-radius:10px 0 0 10px!important}td:last-child{border-radius:0 10px 10px 0!important}td small{font-size:11px!important;margin-top:2px!important}.badge{padding:5px 8px!important;font-size:10.5px!important}.modal{border-radius:18px!important}.modal-head{padding:16px 18px 8px!important}.modal-head h2{font-size:18px!important}.modal-head p{font-size:12px!important}.form-sections{padding:0 18px 12px!important;gap:10px!important}.form-section{padding:12px!important;border-radius:14px!important}.form-section h3{font-size:14px!important;margin-bottom:8px!important}.form-grid{gap:8px!important}.field span,.simple-form label span{margin-bottom:4px!important;font-size:11.5px!important}.modal-actions{padding:10px 18px 16px!important}.detail-grid{gap:8px!important}.info-card{padding:10px!important;border-radius:13px!important}.info-card label{font-size:11px!important}.info-card p{font-size:12.5px!important}.tabs{gap:6px!important;margin-bottom:10px!important}.upload-box,.simple-form{padding:10px!important;border-radius:14px!important;margin-bottom:10px!important}.attachment-item,.simple-row{padding:10px!important;border-radius:13px!important}.simple-grid{gap:8px!important}.empty-state,.empty-line,.compact-empty{padding:18px!important}.inline-select{width:auto!important;min-width:110px!important;padding:5px 8px!important}@media (max-width: 1200px){.filters,.compact-filters,.upload-form,.permit-form{grid-template-columns:1fr 1fr!important}}@media (max-width: 900px){.sidebar{width:100%!important}.main{max-width:none!important;padding:10px!important}.filters,.compact-filters,.upload-form,.permit-form{grid-template-columns:1fr!important}}.sidebar{transition:width .22s ease,padding .22s ease;overflow:hidden}.sidebar.collapsed{width:72px!important;padding:14px 10px!important;align-items:center}.sidebar.collapsed .brand{justify-content:center;width:100%}.sidebar.collapsed .brand-text{display:none}.collapse-btn{margin-left:auto;width:28px!important;height:28px!important;padding:0!important;border-radius:10px!important;background:#ffffff24!important;color:#fff!important;box-shadow:none!important;display:grid!important;place-items:center!important}.sidebar.collapsed .collapse-btn{position:absolute;top:58px;right:8px;width:24px!important;height:24px!important;background:#1269c7!important}.sidebar.collapsed nav{width:100%;margin-top:22px}.sidebar.collapsed nav a{justify-content:center;padding:10px 0!important;width:48px;margin:0 auto}.sidebar.collapsed nav a svg{flex:0 0 auto}.sidebar.collapsed nav a span{display:none}.asseta-page:has(.sidebar.collapsed) .main{max-width:calc(100vw - 72px)!important}@media (max-width: 900px){.sidebar.collapsed{width:100%!important;height:auto!important;align-items:stretch}.sidebar.collapsed nav{display:flex;flex-wrap:wrap;margin-top:10px}.sidebar.collapsed nav a{width:auto;padding:9px 12px!important}.sidebar.collapsed nav a span{display:inline}.sidebar.collapsed .brand-text{display:block}.sidebar.collapsed .collapse-btn{position:static;margin-left:auto}}.boq-form{grid-template-columns:210px 90px 1.2fr 170px 80px 90px 100px 160px 140px 100px 1fr auto!important}.boq-filters{grid-template-columns:1fr 210px 170px 150px auto!important}.boq-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important}.inline-input{width:76px!important;min-width:76px!important;padding:5px 7px!important;text-align:center}@media (max-width: 1300px){.boq-form{grid-template-columns:repeat(4,minmax(0,1fr))!important}.boq-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (max-width: 900px){.boq-form,.boq-filters,.boq-cards{grid-template-columns:1fr!important}}.project-details-page{display:grid;gap:12px}.project-hero{background:linear-gradient(135deg,#0f2742f5,#1269c7d1),radial-gradient(circle at 80% 20%,rgba(255,255,255,.18),transparent 32%);border-radius:22px;padding:18px;color:#fff;display:grid;grid-template-columns:1fr 220px;gap:18px;box-shadow:0 18px 45px #0f27422e}.project-hero-actions{display:flex;align-items:center;gap:10px;margin-bottom:14px}.project-back-btn{background:#ffffff24!important;color:#fff!important;box-shadow:none!important;border:1px solid rgba(255,255,255,.18)!important}.project-status-pill{background:#ffffff29;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.project-hero h1{margin:0;font-size:28px;line-height:1.15;letter-spacing:-.02em}.project-hero p{margin:7px 0 0;color:#ffffffc7;font-size:13px}.project-hero-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.project-hero-tags span{background:#ffffff1f;border:1px solid rgba(255,255,255,.14);color:#ffffffe0;padding:6px 9px;border-radius:999px;font-size:11.5px}.project-progress-card{background:#ffffff24;border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:14px;display:grid;place-items:center;text-align:center}.progress-circle{width:118px;height:118px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at center,rgba(15,39,66,.95) 0 56%,transparent 57%),conic-gradient(#fff calc(var(--p) * 1%),#ffffff40 0);margin-bottom:10px}.progress-circle strong{font-size:24px;line-height:1}.progress-circle span{display:block;font-size:10px;color:#ffffffad;margin-top:26px;position:absolute}.progress-meta b{display:block;font-size:13px}.progress-meta small{display:block;color:#ffffffb8;font-size:11px;margin-top:4px}.project-metrics-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.project-metric{background:#fff;border:1px solid #e3ebf5;border-radius:16px;padding:12px;display:flex;align-items:center;gap:9px;min-height:76px;box-shadow:0 12px 28px #192d460f}.metric-icon{width:36px;height:36px;background:#eef6ff;color:#1269c7;border-radius:13px;display:grid;place-items:center;flex:0 0 auto}.project-metric span{display:block;color:#6b7b91;font-size:11px;margin-bottom:3px}.project-metric strong{display:block;color:#102033;font-size:12.5px;line-height:1.25}.project-detail-shell{display:grid;grid-template-columns:285px 1fr;gap:12px;align-items:start}.project-side-card,.project-content-card{background:#fff;border:1px solid #e3ebf5;border-radius:20px;box-shadow:0 16px 38px #192d460f}.project-side-card{padding:14px;position:sticky;top:12px}.side-card-title{margin-bottom:12px}.side-card-title h3{margin:0;font-size:16px}.side-card-title span{display:inline-flex;margin-top:6px;background:#eef6ff;color:#1269c7;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.project-info-row{display:grid;grid-template-columns:100px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid #f0f4f8}.project-info-row span{color:#6b7b91;font-size:11px}.project-info-row strong{color:#102033;font-size:12px;text-align:right}.side-separator{height:1px;background:#e7edf5;margin:8px 0}.project-content-card{padding:14px;min-width:0}.project-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #eef2f7}.project-tabs button{box-shadow:none!important;padding:7px 10px!important;border-radius:11px!important;text-transform:capitalize}.project-tabs button span{background:#ffffff47;min-width:20px;height:20px;display:inline-grid;place-items:center;border-radius:999px;margin-left:4px;font-size:10px}.project-tabs .secondary span{background:#dbe8f5;color:#143d63}.overview-layout{display:grid;gap:12px}.overview-section{background:#fbfdff;border:1px solid #e9f0f8;border-radius:16px;padding:13px}.overview-section h3{margin:0 0 10px;font-size:14px;color:#102033}.detail-grid.redesigned{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.detail-grid.redesigned .info-card{background:#fff;border-radius:13px}.redesigned-upload{background:#fbfdff!important;border-style:solid!important}.redesigned-list{margin-top:10px}.project-loading{min-height:180px;display:grid;place-items:center}@media (max-width: 1300px){.project-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-detail-shell{grid-template-columns:1fr}.project-side-card{position:static}}@media (max-width: 900px){.project-hero,.project-metrics-grid,.detail-grid.redesigned{grid-template-columns:1fr}.project-hero h1{font-size:22px}}
