*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f5f7fb;color:#172033}a{color:#2454d6;text-decoration:none}a:hover{text-decoration:underline}.topbar{height:72px;background:#fff;border-bottom:1px solid #e6eaf2;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.brand{display:flex;gap:12px;align-items:center}.brand span{display:block;color:#6c7588;font-size:12px;margin-top:2px}.logo{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#1f4fd7,#42a5ff);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.5px;box-shadow:0 10px 22px rgba(36,84,214,.25)}.logo.big{width:64px;height:64px;border-radius:20px;margin:0 auto 18px}.nav{display:flex;gap:8px;align-items:center}.nav a{padding:10px 12px;border-radius:12px;color:#394456;font-size:14px}.nav a.active,.nav a:hover{background:#eef3ff;color:#1f4fd7;text-decoration:none}.page{max-width:1280px;margin:0 auto;padding:28px}.footer{max-width:1280px;margin:0 auto;padding:10px 28px 28px;color:#8790a3;font-size:13px}.hero,.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.hero{padding:28px;border-radius:28px;background:linear-gradient(135deg,#ffffff,#edf4ff);border:1px solid #e3eafa}.hero h1,.page-head h1{margin:8px 0 8px;font-size:32px;line-height:1.15}.hero p,.page-head p{margin:0;color:#657087}.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#eaf1ff;color:#2454d6;font-weight:700;font-size:12px}.cards{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:18px}.card{background:#fff;border:1px solid #e6eaf2;border-radius:22px;padding:20px;box-shadow:0 10px 28px rgba(23,32,51,.05)}.stat span{display:block;color:#727d92;font-size:13px}.stat strong{display:block;font-size:30px;margin-top:8px}.grid{display:grid;gap:18px;margin-bottom:18px}.grid.two{grid-template-columns:repeat(2,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.section-title h2{margin:0;font-size:20px}.progress{height:14px;background:#edf1f7;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#1f4fd7,#42a5ff);border-radius:999px}.muted{color:#7a8497;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid #d9e0ec;background:#fff;color:#172033;border-radius:13px;font-weight:700;cursor:pointer;text-decoration:none;font-size:14px}.btn:hover{text-decoration:none;background:#f4f7fb}.btn.primary{background:#2454d6;border-color:#2454d6;color:#fff}.btn.primary:hover{background:#1e47ba}.btn.success{background:#15803d;border-color:#15803d;color:#fff}.btn.success:hover{background:#11632f;color:#fff}.btn.danger{background:#fff0f0;border-color:#ffc9c9;color:#c32626}.btn.small{padding:7px 10px;font-size:12px;border-radius:10px}.btn.full{width:100%;margin-top:14px}.actions,.row-actions,.form-actions{display:flex;gap:10px;flex-wrap:wrap}.form-actions{margin-top:18px}.form-actions.between{justify-content:space-between}table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px}th,td{text-align:left;border-bottom:1px solid #edf0f5;padding:12px 10px;vertical-align:top;font-size:14px}th{color:#657087;font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:#fafbfe}.table-wrap{overflow:auto}.small-text{font-size:13px;color:#596579;max-width:360px}.pill,.risk{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.pill.planned{background:#eaf1ff;color:#2454d6}.pill.in_progress{background:#fff4d8;color:#9b6800}.pill.done{background:#e5f7ed;color:#197844}.pill.risk{background:#ffe8e8;color:#c32626}.pill.paused{background:#eef0f4;color:#596579}.pill.cancelled{background:#f0f0f0;color:#777}.risk.low{background:#e5f7ed;color:#197844}.risk.medium{background:#fff4d8;color:#9b6800}.risk.high{background:#ffe8e8;color:#c32626}.alert{padding:13px 16px;border-radius:15px;margin-bottom:16px;font-weight:700}.alert.success{background:#e5f7ed;color:#197844}.alert.error{background:#ffe8e8;color:#c32626}.login-wrap{min-height:calc(100vh - 150px);display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:420px;background:#fff;border:1px solid #e6eaf2;border-radius:28px;padding:28px;box-shadow:0 16px 45px rgba(23,32,51,.08);text-align:left}.login-card h1{text-align:center;margin:0 0 8px}.login-card p{text-align:center;color:#6c7588;margin:0 0 22px}.login-card small{display:block;color:#7d8798;margin-top:12px;line-height:1.45}label{display:block;font-weight:800;font-size:13px;margin:14px 0 7px;color:#2a3345}input,select,textarea{width:100%;border:1px solid #dfe5ef;background:#fff;border-radius:13px;padding:12px 13px;font-size:14px;color:#172033;outline:none}textarea{resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:#8da8f0;box-shadow:0 0 0 4px rgba(36,84,214,.08)}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto}.prose h2{margin:0 0 12px}.prose p{line-height:1.65;color:#333b4e}.filters{margin-bottom:18px}.filter-grid{display:grid;grid-template-columns:2fr 1.5fr 1fr auto;gap:14px;align-items:end}.filter-actions{display:flex;gap:10px;margin-bottom:0}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px;color:#596579;font-size:13px}.legend span{display:flex;align-items:center;gap:7px}.g{width:18px;height:10px;border-radius:99px;display:inline-block}.g.planned,.bar.planned{background:#2f6bff}.g.in_progress,.bar.in_progress{background:#ffb020}.g.done,.bar.done{background:#21a366}.g.risk,.bar.risk{background:#e03131}.g.paused,.bar.paused{background:#7f8a9b}.bar.cancelled{background:#b3b3b3}.gantt-wrap{max-height:calc(100vh - 260px)}.gantt-table{min-width:1250px}.gantt-table th,.gantt-table td{text-align:center}.gantt-table th:first-child,.gantt-table td:first-child{text-align:left}.sticky-col{position:sticky;left:0;background:#fff;z-index:5;min-width:330px}.gantt-table th.sticky-col{background:#fafbfe;z-index:6}.month-cell{min-width:60px}.bar{display:block;height:20px;border-radius:999px;box-shadow:0 5px 12px rgba(0,0,0,.10)}.empty{text-align:center;color:#7a8497;padding:28px}.form{max-width:1050px}.between{justify-content:space-between}.filter-grid .filter-actions{align-self:end}@media(max-width:1050px){.cards{grid-template-columns:repeat(3,1fr)}.grid.two,.grid.four,.filter-grid{grid-template-columns:1fr}.hero,.page-head{flex-direction:column}.topbar{height:auto;padding:14px;align-items:flex-start;gap:12px;flex-direction:column}.nav{flex-wrap:wrap}.page{padding:18px}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.cards{grid-template-columns:1fr}.hero h1,.page-head h1{font-size:26px}.card{padding:16px}.sticky-col{min-width:260px}}
.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.area-card{display:block;border:1px solid #e6eaf2;background:#fafcff;border-radius:18px;padding:16px;color:#172033;text-decoration:none}.area-card:hover{background:#eef3ff;text-decoration:none}.area-card span{display:block;color:#2454d6;font-weight:800;margin-bottom:8px}.area-card strong{display:block;font-size:18px;margin-bottom:6px}.area-card em{font-style:normal;color:#6c7588;font-size:13px}.area-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef3ff;color:#2454d6;font-size:12px;font-weight:800}.grid.three{grid-template-columns:repeat(3,1fr)}.implementation-block{margin-top:18px}.implementation-list{display:grid;gap:16px}.implementation-item{border:1px solid #edf0f5;background:#fff;border-radius:18px;padding:16px}.implementation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.implementation-detail h3{margin:0 0 8px;font-size:15px}.implementation-detail p{margin:0;color:#4d596d;line-height:1.55}.timeline-grid{margin-bottom:18px}.gantt-filter{grid-template-columns:180px auto!important}@media(max-width:1050px){.area-grid,.grid.three{grid-template-columns:1fr}.implementation-head{flex-direction:column}}

/* v2.0 cycle screens */
.cycle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.cycle-step{border:1px solid #e6e9f2;border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,#f8faff)}.cycle-step strong{display:block;font-size:16px;margin-bottom:6px}.cycle-step p{margin:0;color:#607089;font-size:14px;line-height:1.45}.stage-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.stage-card{border:1px solid #e6e9f2;border-radius:16px;padding:14px;background:#fff}.stage-card strong{font-size:24px;display:block}.stage-card span{font-size:13px;color:#607089}.stage-new,.stage-approved,.stage-stock_check,.stage-purchase_needed,.stage-purchasing,.stage-delivered,.stage-issued,.stage-closed,.stage-rejected{border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;display:inline-block}.stage-new{background:#eef2ff;color:#3730a3}.stage-approved{background:#ecfdf5;color:#047857}.stage-stock_check{background:#fff7ed;color:#c2410c}.stage-purchase_needed{background:#fef2f2;color:#b91c1c}.stage-purchasing{background:#fefce8;color:#a16207}.stage-delivered{background:#eff6ff;color:#1d4ed8}.stage-issued{background:#f0fdf4;color:#15803d}.stage-closed{background:#f3f4f6;color:#374151}.stage-rejected{background:#fee2e2;color:#991b1b}.form-actions-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mini-form{display:inline}.danger-text{color:#b91c1c;font-weight:700}.ok-text{color:#047857;font-weight:700}.warning-text{color:#a16207;font-weight:700}.metric-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{padding:14px;border:1px solid #e6e9f2;border-radius:16px;background:#fff}.metric span{display:block;color:#607089;font-size:13px}.metric strong{font-size:24px}.textarea-sm{min-height:76px}.wide-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.subnav{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 18px}.subnav a{padding:8px 12px;border:1px solid #e6e9f2;border-radius:999px;background:#fff;text-decoration:none;color:#1f2a44;font-size:14px}.subnav a.active{background:#1f2a44;color:#fff}.below-min{background:#fff1f2}.nowrap{white-space:nowrap}.muted-list{padding-left:18px;color:#607089;line-height:1.7}@media(max-width:1100px){.cycle-grid,.stage-board,.metric-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.cycle-grid,.stage-board,.metric-row{grid-template-columns:1fr}.nav{overflow:auto}.table-wrap{overflow:auto}}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.form-grid .full{grid-column:1/-1}@media(max-width:800px){.form-grid{grid-template-columns:1fr}}


/* v2.9 Warehouse/WMS */
.stock-thumb{width:52px;height:52px;object-fit:cover;border-radius:12px;border:1px solid #e6eaf2;background:#fff}
.stock-thumb.large{width:86px;height:86px}
.photo-empty{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;text-align:center;border:1px dashed #cbd5e1;border-radius:12px;color:#94a3b8;font-size:11px;line-height:1.2;background:#f8fafc}
.photo-preview{margin-top:10px}.photo-preview img{max-width:180px;max-height:140px;object-fit:cover;border-radius:14px;border:1px solid #e6eaf2}
.warehouse-table th,.warehouse-table td{font-size:13px}
.warehouse-filter{grid-template-columns:2fr 1.5fr 1.4fr auto!important}
.checkbox-stack{display:flex;flex-direction:column;gap:6px;justify-content:flex-end}
.checkbox-stack .checkbox{margin:0;font-size:13px}
.warehouse-item-brief{display:flex;gap:16px;align-items:flex-start}
@media(max-width:900px){.warehouse-filter{grid-template-columns:1fr!important}.warehouse-item-brief{flex-direction:column}}


/* v3.0 Service acts */
.service-act-items-table textarea.textarea-xs{min-height:48px;padding:8px 10px;font-size:13px;line-height:1.35;border-radius:10px}.service-act-items-table input,.service-act-signers-table input{padding:9px 10px;border-radius:10px}.service-act-items-table th,.service-act-items-table td,.service-act-signers-table th,.service-act-signers-table td{font-size:13px}.service-act-signers-table{min-width:760px}

/* v3.4 Founder department metrics */
.founder-metrics-table{min-width:1500px}
.founder-metrics-table textarea.textarea-xs{min-height:48px;padding:8px 10px;font-size:13px;line-height:1.35;border-radius:10px}
.founder-metrics-table input,.founder-metrics-table select{padding:9px 10px;border-radius:10px;font-size:13px}
.metrics-template-table{min-width:900px}
.metrics-template-short{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.metric-template-mini{border:1px solid #edf0f5;background:#fafcff;border-radius:16px;padding:14px}
.metric-template-mini strong{display:block;margin-bottom:6px;color:#172033}
.metric-template-mini span{display:block;color:#607089;font-size:13px;line-height:1.45}
@media(max-width:1000px){.metrics-template-short{grid-template-columns:1fr}}
.cards-4{grid-template-columns:repeat(4,1fr)}.link-card{display:block;color:#172033;text-decoration:none}.link-card:hover{text-decoration:none;border-color:#b9c8ec;box-shadow:0 12px 34px rgba(36,84,214,.08)}.link-card h2{margin:0 0 10px;font-size:19px}.link-card p{margin:0;color:#657087;line-height:1.45}.inline-filter{display:flex;gap:10px;align-items:center;margin-bottom:16px}.inline-filter input{max-width:420px}.actions-cell{white-space:nowrap;text-align:right}.textarea-xs{min-height:48px;padding:9px 10px;font-size:13px}.textarea-sm{min-height:86px}.danger-text{color:#c32626;font-weight:800}.warning-text{color:#9b6800;font-weight:800}.ok-text{color:#197844;font-weight:800}@media(max-width:1050px){.cards-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.cards-4{grid-template-columns:1fr}.inline-filter{flex-direction:column;align-items:stretch}.inline-filter input{max-width:none}}
