:root{--navy:#0b1f3a;--gold:#c9a227}
body{background:#f4f6fa;font-family:system-ui,Segoe UI,Roboto,sans-serif}
.navbar{background:var(--navy)!important;border-bottom:3px solid var(--gold)}
.navbar-brand{color:var(--gold)!important;font-weight:700;letter-spacing:.5px}
.btn-gold{background:var(--gold);color:var(--navy);font-weight:600}.btn-gold:hover{background:#b8921f;color:#fff}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:#16325c;color:#fff}
.card{border:0;box-shadow:0 1px 4px rgba(11,31,58,.08)}.card-header{background:var(--navy);color:#fff;font-weight:600}
.kanban{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.5rem}.kcol{min-width:200px;flex:1;background:#e8ecf3;border-radius:.5rem;padding:.5rem}
.kcol h6{font-size:.8rem;color:var(--navy);font-weight:700}.kcard{background:#fff;border-radius:.4rem;padding:.45rem;margin-bottom:.4rem;font-size:.82rem;border-left:4px solid var(--gold)}
.kcard.danger{border-left-color:#dc3545}.kcard.warning{border-left-color:#ffc107}
.stage-done{border-left:5px solid #198754}.stage-cur{border-left:5px solid var(--gold)}.stage-pend{border-left:5px solid #ccd}
.tl{border-left:2px solid var(--gold);padding-left:1rem}.tl .ev{margin-bottom:.6rem;font-size:.88rem}
.cd{font-variant-numeric:tabular-nums;font-weight:700}
.risk{border-left:5px solid #dc3545}
.bnav{position:fixed;bottom:0;left:0;right:0;background:var(--navy);border-top:3px solid var(--gold);display:flex;z-index:1030;padding-bottom:env(safe-area-inset-bottom)}
.bnav a{flex:1;color:#cfd6e4;text-align:center;font-size:.7rem;padding:8px 0;min-height:58px;text-decoration:none;position:relative}.bnav a i{font-size:1.35rem;display:block}.bnav a.on{color:var(--gold)}
.bnav .badge{position:absolute;top:4px;left:55%;font-size:.6rem}
@media(max-width:767px){main{padding-bottom:84px!important}.btn,.form-control,.form-select,.list-group-item{min-height:44px}.btn-sm{min-height:40px}}
.dropz{border:2px dashed #b8c2d1;border-radius:8px;padding:8px;background:#f8fafc}.dropz.dz-on{border-color:#c9a227;background:#fff8e1}
.dz-hint{font-size:.85rem;color:#556}.dz-hint .btn{margin:2px 0}.dz-item{display:flex;align-items:center;gap:8px;font-size:.8rem;padding:4px 0;border-top:1px solid #e5e9f0}
.dz-item img{width:40px;height:40px;object-fit:cover;border-radius:4px}.dz-item i{font-size:1.6rem;width:40px;text-align:center}.dz-n{flex:1;word-break:break-all}.dz-s{color:#667;white-space:nowrap}.dz-bad .dz-s{color:#c00;font-weight:700}
.lbox{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:3000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.lbox img{max-width:95vw;max-height:85vh}.lbox .btn-close{position:absolute;top:14px;right:14px}
/* ---- mobile update ---- */
.ptr{position:fixed;left:50%;top:0;transform:translate(-50%,-60px);z-index:1100;background:#0b1f3a;color:#fff;border:1px solid var(--gold,#c9a227);border-radius:20px;padding:6px 14px;font-size:13px;opacity:0;transition:opacity .15s;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.ptr.ready i{transform:rotate(180deg)}.ptr.spin i{animation:ttspin .8s linear infinite}@keyframes ttspin{to{transform:rotate(360deg)}}
.recent{margin-bottom:12px}.recent-h{font-weight:600;color:#0b1f3a;margin-bottom:6px}.recent-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.recent-chip{flex:0 0 auto;max-width:220px;background:#fff;border:1px solid #e3e7ef;border-left:4px solid var(--gold,#c9a227);border-radius:10px;padding:8px 12px;text-decoration:none;color:#0b1f3a;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 6px rgba(11,31,58,.06)}
.apcard{border:0;border-left:5px solid var(--gold,#c9a227);border-radius:14px;box-shadow:0 4px 16px rgba(11,31,58,.08)}.apcard.apsel{box-shadow:0 0 0 3px rgba(201,162,39,.55),0 4px 16px rgba(11,31,58,.1)}
.apkind{background:#0b1f3a;color:#e3c66b}.apamt{font-size:1.15rem;margin-bottom:8px;color:#0b1f3a}.apb{min-height:56px;font-weight:700;border-radius:12px}.apb.apoff{opacity:.35}.apb.apon{box-shadow:0 0 0 3px rgba(11,31,58,.25)}
.apgo{min-height:50px;font-weight:700;border-radius:12px}
.bnav a{position:relative}.bnav .apcount{position:absolute;top:2px;right:18%;font-size:10px}
.fab{position:fixed;right:18px;bottom:84px;z-index:1040;display:flex;flex-direction:column;align-items:flex-end;gap:8px}@media(min-width:768px){.fab{bottom:24px}}
.fab-btn{width:60px;height:60px;border-radius:50%;border:0;background:linear-gradient(135deg,#d8b545,#b8901b);color:#0b1f3a;font-size:28px;box-shadow:0 6px 18px rgba(11,31,58,.35);transition:transform .2s}.fab.open .fab-btn{transform:rotate(45deg)}
.fab-menu{display:flex;flex-direction:column;gap:6px}.fab-menu[hidden]{display:none}.fab-menu button{border:0;background:#0b1f3a;color:#fff;border-radius:24px;padding:10px 16px;font-size:15px;text-align:left;box-shadow:0 4px 12px rgba(0,0,0,.25)}.fab-menu i{color:#e3c66b;margin-right:6px}
.sheet{position:fixed;inset:0;background:rgba(11,31,58,.55);z-index:1200;display:flex;align-items:flex-end;justify-content:center}.sheet-card{background:#fff;width:100%;max-width:560px;border-radius:18px 18px 0 0;padding:18px;max-height:90vh;overflow:auto}
@media(min-width:768px){.sheet{align-items:center}.sheet-card{border-radius:18px}}
.sc-pages{display:flex;gap:8px;flex-wrap:wrap}.sc-pg{position:relative;width:90px}.sc-pg img{width:90px;height:120px;object-fit:cover;border:1px solid #dde;border-radius:6px}.sc-pg button{position:absolute;top:-6px;right:-6px;border:0;border-radius:50%;width:22px;height:22px;background:#c0392b;color:#fff;line-height:1}.sc-pg span{position:absolute;bottom:4px;left:6px;background:#0b1f3a;color:#fff;font-size:11px;border-radius:8px;padding:0 6px}
/* ---- reminders ---- */
.rm-people{display:flex;flex-wrap:wrap;gap:6px}.rm-chip{border:1px solid #d9dfea;border-radius:20px;padding:6px 12px;font-size:14px;cursor:pointer;background:#f7f9fc}.rm-chip:has(input:checked){background:#0b1f3a;color:#fff;border-color:#0b1f3a}.rm-chip input{accent-color:#c9a227}
.mention-box{position:relative;z-index:5;background:#fff;border:1px solid #d9dfea;border-radius:10px;box-shadow:0 6px 18px rgba(11,31,58,.15);margin:-4px 0 8px;overflow:hidden}.mention-box button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:8px 12px}.mention-box button:hover{background:#f3f0e2}.mention-box span{color:#8a96a8;font-size:12px}
.rmcard{border:0;border-left:5px solid var(--gold,#c9a227);border-radius:12px;box-shadow:0 3px 12px rgba(11,31,58,.07)}.rmcard.rm-over{border-left-color:#c0392b}.rmcard.rm-closed{opacity:.7;border-left-color:#9aa5b5}
.rm-tabs .nav-link{border-radius:20px;color:#0b1f3a}.rm-tabs .nav-link.active{background:#0b1f3a;color:#fff}
.pending{border:0;border-radius:14px;overflow:hidden;box-shadow:0 4px 16px rgba(11,31,58,.1)}.pending .card-header{background:linear-gradient(135deg,#0b1f3a,#1d3d6e);color:#fff;font-weight:600}.pending .card-header i{color:#e3c66b}
.pending-banner{background:#fff8e1;border:1px solid #e3c66b;border-left:5px solid #c9a227;border-radius:12px;color:#0b1f3a}
