:root{--navy: #0e2a47;--navy-deep: #081b30;--navy-soft: #16385c;--paper: #f2f4f7;--card: #ffffff;--ink: #16283b;--muted: #5b6b7c;--line: #dde3ea;--gold: #c9a227;--gold-soft: #f0e6c0;--seal: #b3372b;--seal-dark: #8f2b21;--st-proposed: #b45309;--st-proposed-bg: #fdf1e0;--st-processing: #1d4ed8;--st-processing-bg: #e7edfd;--st-signed: #15803d;--st-signed-bg: #e4f3ea;--st-expired: #6b7280;--st-expired-bg: #eceef1;--font-display: "Playfair Display", "Times New Roman", serif;--font-body: "Be Vietnam Pro", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer}input,select,textarea{font-family:var(--font-body);font-size:14px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--navy)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--navy);color:#fff;display:flex;align-items:center;gap:24px;padding:0 24px;height:60px;position:sticky;top:0;z-index:50}.brand{display:flex;align-items:baseline;gap:10px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:21px;letter-spacing:.02em;color:#fff}.brand-name .accent{color:var(--gold)}.brand-sub{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#9fb2c6}.nav{display:flex;gap:4px;margin-left:auto}.nav a{padding:8px 14px;border-radius:8px;font-size:13.5px;font-weight:500;color:#c9d6e2}.nav a:hover{background:var(--navy-soft);color:#fff}.nav a.active{background:var(--navy-soft);color:var(--gold)}.userchip{display:flex;align-items:center;gap:10px;font-size:13px;color:#c9d6e2}.userchip button{background:none;border:1px solid #3d5a7a;color:#c9d6e2;padding:5px 12px;border-radius:7px;font-size:12.5px}.userchip button:hover{border-color:var(--gold);color:var(--gold)}.content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:28px 24px 64px}.page-title{font-family:var(--font-display);font-size:28px;font-weight:600;margin:0 0 4px}.page-sub{color:var(--muted);font-size:14px;margin:0 0 24px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;transition:box-shadow .15s ease,transform .15s ease}a.card:hover{box-shadow:0 6px 24px #0e2a471f;transform:translateY(-2px)}.logo-badge{width:52px;height:52px;border-radius:10px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--navy);overflow:hidden;flex-shrink:0}.logo-badge img{width:100%;height:100%;object-fit:contain}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.badge.proposed{color:var(--st-proposed);background:var(--st-proposed-bg)}.badge.processing{color:var(--st-processing);background:var(--st-processing-bg)}.badge.signed{color:var(--st-signed);background:var(--st-signed-bg)}.badge.expired{color:var(--st-expired);background:var(--st-expired-bg)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.filters input[type=search]{min-width:240px;flex:1}.btn{border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;background:var(--navy);color:#fff}.btn:hover{background:var(--navy-soft)}.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink)}.btn.ghost:hover{border-color:var(--navy)}.btn:disabled{opacity:.5;cursor:not-allowed}.seal-btn{border:none;background:var(--seal);color:#fff;font-weight:700;font-size:13.5px;letter-spacing:.08em;padding:11px 20px;border-radius:10px;box-shadow:inset 0 0 0 2px #ffffff59,inset 0 0 0 4px var(--seal);transition:transform .1s ease,background .15s ease}.seal-btn:hover{background:var(--seal-dark)}.seal-btn:active{transform:scale(.96)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#081b30a6;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--card);border-radius:16px;padding:32px;max-width:440px;width:100%;text-align:center}.modal h3{font-family:var(--font-display);font-size:22px;margin:0 0 12px}.modal p{color:var(--muted);margin:0 0 24px}.modal .actions{display:flex;gap:12px;justify-content:center}.ceremony{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:radial-gradient(ellipse at 50% 35%,var(--navy-soft) 0%,var(--navy-deep) 70%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;overflow:hidden}.ceremony canvas{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ceremony .kicker{font-size:13px;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;animation:rise .6s ease both}.ceremony h1{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,5vw,54px);margin:0 0 30px;animation:rise .6s .15s ease both}.ceremony .pair{display:flex;align-items:center;gap:28px;margin-bottom:30px;animation:rise .6s .3s ease both}.ceremony .emblem{width:96px;height:96px;border-radius:50%;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:30px;border:3px solid var(--gold);overflow:hidden}.ceremony .emblem img{width:100%;height:100%;object-fit:contain;background:#fff}.ceremony .link-line{width:clamp(60px,12vw,140px);height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);position:relative;animation:draw 1s .5s ease both;transform-origin:center}.ceremony .link-line:after{content:"✕";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--gold);font-size:15px;background:transparent}.ceremony .names{font-family:var(--font-display);font-size:clamp(18px,3vw,28px);margin-bottom:16px;animation:rise .6s .45s ease both}.ceremony .blessing{max-width:520px;color:#b9c8d8;font-size:15px;margin-bottom:36px;animation:rise .6s .6s ease both}.ceremony .btn-continue{background:var(--gold);color:var(--navy-deep);border:none;border-radius:999px;font-weight:700;letter-spacing:.1em;font-size:14px;padding:13px 40px;animation:rise .6s .75s ease both}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.wall-hero{background:radial-gradient(ellipse at 50% 30%,var(--navy-soft) 0%,var(--navy-deep) 75%);border-radius:16px;color:#fff;padding:20px;margin-bottom:24px;position:relative;overflow:hidden}.wall-svg{display:block;width:100%;height:auto}.highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.stat .num{font-family:var(--font-display);font-size:30px;font-weight:700;color:var(--navy)}.stat .lbl{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.live-feed{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.live-feed h2{font-family:var(--font-display);font-size:19px;margin:0 0 14px;display:flex;align-items:center;gap:10px}.live-dot{width:9px;height:9px;border-radius:50%;background:var(--seal);animation:pulse 1.8s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.feed-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.feed-item:last-child{border-bottom:none}.feed-item .flag{font-size:22px}.feed-item .meta{font-size:12.5px;color:var(--muted)}.toast{position:fixed;top:74px;right:20px;z-index:90;background:var(--navy);color:#fff;border-left:3px solid var(--gold);border-radius:10px;padding:13px 18px;font-size:14px;box-shadow:0 8px 30px #081b3059;animation:rise .35s ease both}.detail-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:24px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}@media (max-width: 860px){.detail-grid{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:20px}.panel h2{font-family:var(--font-display);font-size:18px;margin:0 0 14px}.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 14px;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0}.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line)}.timeline li{position:relative;padding:0 0 18px 16px}.timeline li:before{content:"";position:absolute;left:-23px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--gold);border:2px solid var(--card)}.timeline .t-date{font-size:12.5px;color:var(--muted)}.doc-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.doc-row:last-child{border-bottom:none}.mou-card{display:flex;flex-direction:column;gap:12px}.mou-card .head{display:flex;gap:12px;align-items:center}.mou-card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.stage{min-height:100vh;background:radial-gradient(ellipse at 50% 30%,var(--navy-soft) 0%,var(--navy-deep) 75%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;overflow:hidden;position:relative}.stage .waiting-kicker{font-size:15px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}.stage h1{font-family:var(--font-display);font-size:clamp(40px,6vw,84px);margin:16px 0}.stage .sub{color:#b9c8d8;font-size:clamp(15px,2vw,22px)}.login-wrap{min-height:100vh;background:radial-gradient(ellipse at 50% 25%,var(--navy-soft) 0%,var(--navy-deep) 80%);display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--card);border-radius:16px;padding:40px;width:100%;max-width:400px}.login-card .brand-name{color:var(--navy);font-size:30px}.login-card form{display:flex;flex-direction:column;gap:12px;margin-top:24px}.err{color:var(--seal);font-size:13.5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}@media (max-width: 700px){.form-grid{grid-template-columns:1fr}}label.fld{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}@media (max-width: 760px){.topbar{height:auto;flex-wrap:wrap;padding:10px 16px;gap:10px}.nav{width:100%;overflow-x:auto;margin-left:0}.content{padding:20px 16px 48px}}
