:root{--g:#137a47;--g2:#0c6038;--g3:#209c61;--soft:#e9f7ef;--line:#b8dfc8;--muted:#68786f;--red:#9c3030;--amber:#7a5a00;--bg:#f4fbf7;--card:#fff;--text:#17382a;--blue:#245f91;--purple:#6946a3}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.app{max-width:1240px;margin:auto;padding:18px}.hero{background:linear-gradient(135deg,#0d6f40,#1ca262);color:#fff;border-radius:20px;padding:22px;box-shadow:0 8px 30px rgba(13,111,64,.16)}.hero-row{display:flex;gap:18px;justify-content:space-between;align-items:flex-end}.brand{display:flex;gap:14px;align-items:center;min-width:0}.logo-wrap{display:none;width:82px;height:82px;background:white;border-radius:14px;padding:5px;flex:0 0 auto}.logo-wrap img{width:100%;height:100%;object-fit:contain}.kicker{font-size:13px;font-weight:700;opacity:.92;letter-spacing:.4px}.title{font-size:28px;font-weight:800;margin-top:4px}.subtitle{font-size:14px;opacity:.92;margin-top:4px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:8px;min-width:430px}.metric{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.12);padding:12px;border-radius:12px}.metric small{display:block;opacity:.82}.metric strong{font-size:22px}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.tab{min-height:42px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--g2);font-weight:700;cursor:pointer}.tab.active{background:var(--g);color:#fff;border-color:var(--g)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:0 3px 12px rgba(20,70,45,.04)}.grid{display:grid;gap:16px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}.hidden{display:none!important}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.btn{min-height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--line);font-weight:700;background:#fff;cursor:pointer;color:var(--text);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary{background:var(--g);border-color:var(--g);color:white}.btn-soft{background:var(--soft);color:var(--g2)}.btn-danger{background:#fff4f4;color:#9b2f2f;border-color:#efc6c6}.btn-blue{background:#e7f3ff;color:#245f91;border-color:#bdd9f2}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:.72rem .82rem;outline:none;color:var(--text)}input:focus,select:focus,textarea:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(19,122,71,.14)}label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}.small{font-size:13px;color:var(--muted)}.section-title{font-size:19px;font-weight:800;margin:0}.section-sub{margin:4px 0 0;color:var(--muted);font-size:13px}.checkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.check{display:flex;gap:9px;align-items:flex-start;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px}.check input{width:18px;height:18px;flex:0 0 auto;margin-top:2px}.badge{display:inline-flex;border-radius:999px;padding:.26rem .62rem;font-size:12px;font-weight:700}.belum{background:#edf3ef;color:#445e50}.selesai{background:#dbf4e5;color:#126a3b}.ditunda{background:#fff2cb;color:#7a5a00}.dibatalkan{background:#fde1e1;color:#963030}.type-tatap{background:#e2efff;color:#165b9f}.type-daring{background:#efe4ff;color:#6b35a5}.type-kombinasi{background:#fff0d8;color:#965d00}.type-mandiri{background:#dff7f4;color:#116b61}.type-kunjungan{background:#ffe5ef;color:#9a3560}.party-0{background:#e7f3ff;color:#245f91}.party-1{background:#f0e8ff;color:#6946a3}.party-2{background:#fff1d9;color:#845d13}.party-3{background:#e2f6e8;color:#286b42}.party-4{background:#ffe8eb;color:#98404c}.party-5{background:#e8f5f5;color:#27696c}.entry{border-left:5px solid var(--g);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:14px;padding:15px;background:#fff}.entry h3{margin:9px 0}.tag{display:inline-block;margin:4px 4px 0 0;border-radius:999px;padding:5px 9px;font-size:13px}.evidence{margin-top:10px;padding:10px;border:1px dashed var(--line);border-radius:10px;background:#fbfffc}.evidence-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;margin-top:6px}.evidence-row a{color:var(--g2);font-weight:700;white-space:nowrap}.evidence-row span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.toolbar{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:8px}.calendar-head,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-head{text-align:center;font-size:12px;font-weight:800;color:var(--g2)}.day{min-height:100px;border:1px solid var(--line);border-radius:10px;padding:7px;background:#fff;cursor:pointer;transition:.15s}.day:hover{border-color:var(--g3);background:#fbfffc}.day.today{outline:2px solid var(--g)}.day.has-events{background:#f8fffb}.dot{display:block;margin-top:4px;border-radius:6px;background:var(--soft);padding:3px 5px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar{height:10px;border-radius:999px;background:#e7eee9;overflow:hidden}.bar span{display:block;height:100%;background:var(--g)}.notice{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px}.master-list{display:grid;gap:8px}.master-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:9px}.login-wrap{max-width:460px;margin:70px auto}.print-header{display:none}.letterhead{position:relative;min-height:120px;padding:4px 8px 8px 125px;text-align:center;border-bottom:6px double #000}.letterhead-logo{position:absolute;left:15px;top:5px;width:90px;height:100px}.letterhead-logo img{width:100%;height:100%;object-fit:contain}.letterhead .gov{font-size:19px;font-weight:800;text-transform:uppercase}.letterhead .agency{font-size:22px;font-weight:800;text-transform:uppercase;margin:4px 0}.letterhead p{margin:2px 0;font-size:12px}.supervisor{margin:18px 0 0 auto;width:280px;font-size:11px}.signspace{height:42px}.admin-link{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.4);padding:8px 11px;border-radius:9px;font-size:13px}.public-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.public-intro h1{font-size:22px;margin:0}.share-box{display:flex;gap:8px;flex-wrap:wrap}.qr-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}.qr-frame{width:146px;height:146px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:8px;display:flex;align-items:center;justify-content:center}.qr-frame canvas{max-width:100%;height:auto!important}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.stat-card small{display:block;color:var(--muted)}.stat-card strong{display:block;font-size:26px;margin-top:4px}.stat-green strong{color:var(--g)}.stat-blue strong{color:var(--blue)}.stat-purple strong{color:var(--purple)}.stat-amber strong{color:var(--amber)}.recent-list{display:grid;gap:9px}.recent-item{padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff}.recent-item b{display:block;margin-bottom:4px}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}.calendar-detail{margin-top:12px}.empty-note{text-align:center;color:var(--muted);padding:18px}.footer{text-align:center;color:var(--muted);font-size:12px;padding:20px 0 8px}
.siaps-word{display:block;color:var(--g);font-size:34px;line-height:1;font-weight:900;letter-spacing:.5px}.siaps-long{display:block;font-size:17px;margin-top:6px}.schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.schedule-grid .entry{min-width:0}.entry{border-left-width:7px}.entry.tone-belum,.day.tone-belum{--tone:#d93636}.entry.tone-segera,.day.tone-segera{--tone:#f1bd23}.entry.tone-selesai,.day.tone-selesai{--tone:#23a45a}.entry.tone-ditunda,.day.tone-ditunda{--tone:#ee7d21}.entry.tone-dibatalkan,.day.tone-dibatalkan{--tone:#8a9490}.entry[class*="tone-"]{border-left-color:var(--tone)}.date-link{display:block;border:0;background:transparent;color:var(--text);font-size:17px;font-weight:800;padding:9px 0;cursor:pointer;text-align:left}.date-link:hover{text-decoration:underline;color:var(--g)}.status-legend{display:flex;gap:14px;flex-wrap:wrap;margin:12px 2px 0;color:var(--muted);font-size:13px}.status-legend span{display:flex;align-items:center;gap:6px}.status-legend i{width:11px;height:11px;border-radius:50%;display:inline-block}.legend-red{background:#d93636}.legend-yellow{background:#f1bd23}.legend-green{background:#23a45a}.legend-orange{background:#ee7d21}.legend-gray{background:#8a9490}.day[class*="tone-"]{border:2px solid var(--tone);background:color-mix(in srgb,var(--tone) 13%,white)}.event-count{display:block;margin-top:7px;font-size:11px;font-weight:800}.day-empty{cursor:default;background:transparent;border-style:dashed;opacity:.35}.stat-button{width:100%;text-align:left;cursor:pointer;color:inherit}.stat-button:hover{transform:translateY(-1px);box-shadow:0 5px 18px rgba(20,70,45,.1)}.quick-panel{margin-top:12px}.quick-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.quick-row:last-child{border-bottom:0}.quick-date{border:0;background:transparent;padding:0;color:var(--g2);font-weight:800;cursor:pointer;text-align:left}.quick-date:hover{text-decoration:underline}.detail-dialog{border:0;border-radius:18px;padding:0;width:min(680px,calc(100% - 24px));box-shadow:0 24px 70px rgba(0,0,0,.25)}.detail-dialog::backdrop{background:rgba(8,34,21,.55)}.dialog-body{padding:20px}.dialog-close{float:right}
@media(max-width:900px){.hero-row{flex-direction:column;align-items:stretch}.metrics{min-width:0}.toolbar,.grid2,.grid3,.grid4{grid-template-columns:1fr 1fr}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-intro{grid-template-columns:1fr}.qr-card{grid-template-columns:1fr}.qr-frame{margin:auto}}
@media(max-width:560px){.app{padding:10px}.metrics{grid-template-columns:1fr 1fr}.toolbar,.grid2,.grid3,.grid4,.schedule-grid{grid-template-columns:1fr}.title{font-size:22px}.day{min-height:64px;padding:6px}.event-count{font-size:9px}.evidence-row{grid-template-columns:1fr}.public-intro h1{font-size:20px}.siaps-word{font-size:30px}.share-box .btn{flex:1}.hero{padding:17px}.logo-wrap{width:64px;height:64px}.quick-row{grid-template-columns:1fr}}

@media print{@page{size:A4;margin:8mm 10mm}body{background:#fff;color:#000;font-size:9.3px}.no-print,.tabs,.hero,.footer{display:none!important}.app{max-width:none;padding:0}.print-header{display:block}.entry{break-inside:avoid;border-left:3px solid #137a47;border-radius:6px;margin-bottom:5px;padding:7px 9px;font-size:8.8px}.entry .badge,.entry .tag{font-size:7.8px;padding:2px 5px}.entry h3{margin:4px 0}.entry p{margin:4px 0}.entry ul{margin:3px 0;padding-left:18px}.evidence{padding:4px;margin-top:4px}.evidence-row{display:block;margin-top:2px}.evidence a{color:#000!important;text-decoration:underline}.evidence-row span{display:block;color:#000;font-size:7.8px}.supervisor{display:block}.panel:not(#panel-list){display:none!important}#panel-list{display:block!important}}
