:root{--blue:#0b4fae;--blue2:#083c86;--sky:#eaf4ff;--green:#08a65a;--orange:#ff9d00;--red:#e84545;--text:#183153;--muted:#6b7c93;--border:#dbe6f2}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f5f9fe;color:var(--text)}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:230px;background:linear-gradient(180deg,#063878,#05275d);color:#fff;padding:20px 14px;position:fixed;left:0;top:0;bottom:0}.brand{display:flex;gap:10px;align-items:center;padding:8px 8px 24px}.brand-mark{font-size:29px}.brand b{display:block;font-size:15px}.brand small{opacity:.7}.sidebar nav a{display:flex;gap:12px;align-items:center;padding:12px 13px;border-radius:9px;margin:5px 0;color:#d9e9ff;font-size:14px}.sidebar nav a.active,.sidebar nav a:hover{background:#0875ec;color:#fff}.main{margin-left:230px;width:calc(100% - 230px);min-height:100vh}.topbar{height:65px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:3}.user-chip{display:flex;gap:9px;align-items:center;font-size:13px}.user-chip small{display:block;color:var(--muted);font-size:10px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#dcecff;color:var(--blue);font-weight:700}.flash{margin:18px 26px 0;padding:12px 15px;border-radius:9px}.flash.ok{background:#e8fff3;color:#087a43}.flash.err{background:#fff0f0;color:#a62525}.container{padding:24px 26px;max-width:1500px;margin:auto}.hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.hero h1{margin:0 0 5px;font-size:25px}.muted{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:0 3px 15px rgba(19,58,100,.05)}.metric{font-size:28px;font-weight:800;margin-top:6px}.metric-label{font-size:12px;color:var(--muted)}.green{color:var(--green)}.orange{color:var(--orange)}.blue{color:var(--blue)}.red{color:var(--red)}.grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title h2{font-size:16px;margin:0}.btn{border:0;border-radius:8px;padding:10px 15px;background:var(--blue);color:#fff;font-weight:700;cursor:pointer;display:inline-block}.btn:hover{opacity:.92}.btn.green{background:var(--green);color:#fff}.btn.gray{background:#eef4fa;color:#31506e}.btn.red{background:var(--red);color:#fff}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:12px}.table th,.table td{padding:11px 9px;border-bottom:1px solid #edf2f7;text-align:left;white-space:nowrap}.table th{color:#71849a;font-size:10px;text-transform:uppercase}.badge{padding:4px 8px;border-radius:12px;font-size:10px;font-weight:700}.badge.done{background:#e4faef;color:#087c46}.badge.pending{background:#fff3d8;color:#9b6400}.form-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid.three{grid-template-columns:repeat(3,1fr)}label{display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#35516f}input,select,textarea{width:100%;padding:11px;border:1px solid #d7e3ef;border-radius:8px;background:#fff;color:#173250;font:inherit}textarea{min-height:100px;resize:vertical}.task-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.task-row{display:grid;grid-template-columns:22px 1fr 70px;gap:8px;align-items:center;background:#f7fbff;border:1px solid #e5eef7;padding:8px;border-radius:8px;font-size:12px}.task-row input[type=number]{padding:7px}.summary-box{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.mini{background:#f6fbff;border:1px solid #e1edf8;padding:10px;border-radius:9px;text-align:center}.mini b{display:block;font-size:18px}.progress{height:8px;background:#edf3f8;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;background:var(--blue);border-radius:10px}.chart{height:230px;display:flex;align-items:flex-end;gap:10px;padding:15px 10px 5px;border-top:1px solid #edf2f7}.bar{flex:1;background:#2b83ee;border-radius:5px 5px 0 0;min-height:4px;position:relative}.bar span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:10px}.bar small{position:absolute;top:100%;left:50%;transform:translateX(-50%);font-size:9px;white-space:nowrap;margin-top:5px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#053679,#0b6be0);padding:20px}.login-box{width:min(420px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 20px 60px rgba(0,0,0,.2)}.login-logo{text-align:center;font-size:44px}.login-box h1{text-align:center;color:#0a3f8c;margin:8px 0}.login-box .subtitle{text-align:center;color:var(--muted);margin-bottom:22px}.full{width:100%;margin-top:12px}.notice{background:#edf7ff;border-left:4px solid var(--blue);padding:12px;font-size:12px;margin-bottom:16px}.checkline{display:flex;gap:9px;align-items:center;font-size:12px}.checkline input{width:auto}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.print-only{display:none}@media(max-width:950px){.sidebar{width:70px}.sidebar .brand div:not(.brand-mark),.sidebar nav span{display:none}.main{margin-left:70px;width:calc(100% - 70px)}.cards{grid-template-columns:repeat(2,1fr)}.grid2,.grid3{grid-template-columns:1fr}.task-list{grid-template-columns:1fr}}@media(max-width:600px){.topbar{padding:0 14px}.container{padding:16px 14px}.cards{grid-template-columns:1fr 1fr}.form-grid,.form-grid.three{grid-template-columns:1fr}.summary-box{grid-template-columns:repeat(2,1fr)}}@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0;width:100%}.print-only{display:block}.container{padding:0}.card,.form-card{box-shadow:none}}
/* v2 additions */
.notif-count{display:inline-block;min-width:18px;padding:2px 5px;border-radius:10px;background:#ff6a00;color:#fff;font-size:10px;text-align:center}.badge.rejected{background:#ffe8e8;color:#b42318}.badge.pending{background:#fff3d6;color:#9a6700}.notification{display:block;padding:16px;border-bottom:1px solid #e8eef7;color:inherit;text-decoration:none}.notification.unread{background:#f0f7ff;border-left:4px solid #0b3a8f}.notification p{margin:6px 0;color:#53657d}.notification small{color:#7c8ca3}.cat-title{font-size:13px;color:#0b3a8f;margin:18px 0 8px}.item-line{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eef2f7}.item-line small{color:#74839a}.review-comment{padding:14px;border-radius:10px;background:#fff3d6;border:1px solid #f2d58a;margin:12px 0}.actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.danger{background:#c62828!important;color:#fff!important}.period-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.period-form select,.period-form input{width:auto}.other-row{display:grid;grid-template-columns:2fr 90px 2fr auto;gap:8px;margin:8px 0}.resubmit-form{margin-top:18px;padding-top:18px;border-top:1px solid #e7edf5}.inline-form{margin:0}.center{text-align:center}.notice{padding:12px 14px;border-radius:10px;background:#eef7ff;border:1px solid #cfe5ff;color:#315a83;margin:14px 0}hr{border:0;border-top:1px solid #e7edf5;margin:22px 0}@media(max-width:700px){.other-row{grid-template-columns:1fr 70px}.other-row input:nth-child(3){grid-column:1/-1}.period-form>*{width:100%!important}.actions .btn{width:100%}}

.brand-logo{display:block;width:100%;max-width:195px;height:auto;object-fit:contain;border-radius:8px;margin:0 auto 8px}.brand-caption{text-align:center;min-width:0}.brand{display:block;padding:8px 5px 24px}.brand-caption b{display:block;font-size:13px}.brand-caption small{display:block;opacity:.7;font-size:11px;margin-top:4px}.activity-entry{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,2fr) 38px;gap:12px;align-items:end;padding:12px 0;border-bottom:1px solid var(--border)}.activity-entry label{display:block;margin-bottom:6px;font-size:13px;font-weight:600}.activity-entry select,.activity-entry textarea{width:100%}.remove-activity{min-height:40px}.activity-description textarea{resize:vertical}.other-row{display:grid;grid-template-columns:1fr 90px 2fr 40px;gap:8px;margin:10px 0}.advance-status{font-weight:700}.brand img{max-width:100%}@media(max-width:700px){.activity-entry,.other-row{grid-template-columns:1fr}.remove-activity{width:100%}}

.advance-review{display:grid;gap:5px;min-width:180px}.advance-review input{min-width:130px}.advance-review .btn{padding:7px 9px;font-size:12px}
