/* KATO Complete POC V3 extensions */
:root{--danger:#a13b31;--warning:#a56d12;--info:#2e6475;--success:#28694d;--blue:#315f83}
.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.module-card{border:1px solid #e2e8e2;border-radius:16px;padding:18px;background:#fff;min-height:150px;display:flex;flex-direction:column;gap:8px}.module-card h4{margin:0;font-size:1rem}.module-card p{font-size:.82rem;color:var(--muted);margin:0}.module-card .btn{margin-top:auto;align-self:flex-start}
.callout{border:1px solid #dbe5dc;border-left:4px solid var(--green-800);padding:14px 16px;border-radius:12px;background:#f8faf7}.callout.warning{border-left-color:var(--warning);background:#fff9ec}.callout.danger{border-left-color:var(--danger);background:#fff4f2}.callout.info{border-left-color:var(--info);background:#f3f8fa}
.workflow{display:grid;gap:0}.workflow-step{display:grid;grid-template-columns:36px 1fr;gap:12px;position:relative;padding-bottom:18px}.workflow-step:not(:last-child):before{content:"";position:absolute;left:17px;top:34px;bottom:0;width:2px;background:#dfe6df}.workflow-num{width:36px;height:36px;border-radius:50%;background:var(--green-900);color:#fff;display:grid;place-items:center;font-weight:900;z-index:1}.workflow-step h4{margin:2px 0 4px}.workflow-step p{margin:0;color:var(--muted);font-size:.86rem}
.timeline{display:grid;gap:12px}.timeline-item{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #edf0ec}.timeline-item:last-child{border-bottom:0}.timeline-date{font-size:.78rem;color:var(--muted);font-weight:800}
.doc-list,.approval-list,.receipt-list{display:grid;gap:10px}.doc-row,.approval-row,.receipt-row{display:grid;grid-template-columns:1.4fr .8fr .8fr auto;gap:12px;align-items:center;border:1px solid #e4e9e3;border-radius:12px;padding:12px;background:#fff}.doc-row strong,.approval-row strong,.receipt-row strong{display:block}
.progress-track{height:8px;border-radius:999px;background:#e9eee8;overflow:hidden}.progress-fill{height:100%;background:var(--green-800);border-radius:999px}
.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.filter-chip{border:1px solid #dbe2db;background:#fff;padding:8px 11px;border-radius:999px;font-size:.78rem;font-weight:800;color:#496057}.filter-chip.active{background:var(--green-900);color:#fff;border-color:var(--green-900)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{padding:15px;border:1px solid #e1e7e1;border-radius:14px;background:#fff}.metric strong{display:block;font-family:Georgia,serif;font-size:1.8rem;font-weight:500}.metric span{font-size:.75rem;color:var(--muted)}
.split-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.split-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stack{display:grid;gap:16px}.action-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.action-bar.end{justify-content:flex-end}
.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px;background:#7f9689}.status-dot.green{background:#2f7f57}.status-dot.amber{background:#c58b26}.status-dot.red{background:#bd5146}
.kv{display:grid;grid-template-columns:170px 1fr;gap:8px 18px;font-size:.88rem}.kv dt{font-weight:800;color:#44564e}.kv dd{margin:0;color:var(--muted)}
.detail-hero{padding:64px 0;background:linear-gradient(135deg,#eff4ed,#f8f3e5)}.detail-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:28px}.sticky-card{position:sticky;top:106px}.itinerary{display:grid;gap:0}.day{display:grid;grid-template-columns:70px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid #e6ebe5}.day-num{font-family:Georgia,serif;font-size:1.4rem;color:var(--green-900)}
.system-map{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.map-column{border:1px solid #e2e7e1;border-radius:16px;background:#fff;padding:16px}.map-column h3{font-size:1rem;margin:0 0 12px}.map-item{padding:9px 10px;border-radius:10px;background:#f4f7f3;margin-bottom:7px;font-size:.8rem;font-weight:700}
.permission-matrix{overflow:auto}.permission-matrix table{min-width:980px}.check{color:#2f7654;font-weight:900}.deny{color:#a64a42;font-weight:900}
.chart-bars{height:170px;display:flex;gap:12px;align-items:end;padding:10px 0 26px}.chart-bar{flex:1;background:linear-gradient(#477764,#173d30);border-radius:8px 8px 2px 2px;min-height:12px;position:relative}.chart-bar span{position:absolute;bottom:-23px;left:50%;transform:translateX(-50%);font-size:.68rem;color:var(--muted)}
.file-drop{border:1.5px dashed #bfcac0;border-radius:14px;padding:24px;text-align:center;background:#fafcf9}.file-drop strong{display:block;margin-bottom:4px}
.portal-card-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.portal-card-title h3{margin:0}.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.subnav button{border:0;background:#eef3ee;border-radius:9px;padding:8px 10px;font-weight:800;color:#496057}.subnav button.active{background:var(--green-900);color:#fff}
.public-cta-band{padding:44px;border-radius:24px;background:var(--green-950);color:#fff;display:flex;justify-content:space-between;gap:30px;align-items:center}.public-cta-band h2{font-family:Georgia,serif;font-weight:500;margin:0 0 8px;font-size:2.2rem}.public-cta-band p{margin:0;color:rgba(255,255,255,.75)}
.data-table.compact td,.data-table.compact th{padding:9px 10px;font-size:.78rem}.badge.info{background:#e9f2f6;color:#315f70}.badge.warning{background:#fff1d4;color:#815c18}.badge.danger{background:#f8e7e4;color:#8a332b}.badge.success{background:#e8f4ec;color:#2d704f}
@media(max-width:1000px){.module-grid,.system-map,.metric-grid{grid-template-columns:repeat(2,1fr)}.detail-grid,.split-2{grid-template-columns:1fr}.sticky-card{position:static}.doc-row,.approval-row,.receipt-row{grid-template-columns:1fr 1fr}.timeline-item{grid-template-columns:1fr}.kv{grid-template-columns:1fr}}
@media(max-width:640px){.module-grid,.system-map,.metric-grid,.split-3{grid-template-columns:1fr}.doc-row,.approval-row,.receipt-row{grid-template-columns:1fr}.public-cta-band{padding:26px;flex-direction:column;align-items:flex-start}}
