:root{--navy:#1f3864;--navy2:#2a4f8c;--gold:#d8a33a;--bg:#eef1f6;--line:#dce3ef;--mut:#7a87a0;--green:#1e8e5a;--red:#c0392b}*{box-sizing:border-box;margin:0;padding:0;font-family:Segoe UI,Arial,sans-serif}body{background:var(--bg);color:#222;font-size:14px}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.side{width:212px;background:var(--navy);color:#fff;position:fixed;height:100vh;display:flex;flex-direction:column}.brand{padding:15px 16px;border-bottom:1px solid hsla(0,0%,100%,.12);font-size:16px;font-weight:700;letter-spacing:.5px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:#cdd8ef;font-weight:400}.nav{padding:10px 8px;flex:1 1;overflow-y:auto;min-height:0}.nav::-webkit-scrollbar{width:7px}.nav::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.18);border-radius:4px}.nav::-webkit-scrollbar-track{background:transparent}.nav a{display:block;padding:10px 12px;border-radius:8px;color:#cdd8ef;font-size:13.5px;margin-bottom:2px}.nav a:hover{background:hsla(0,0%,100%,.08);color:#fff}.nav a.on{background:#fff;color:var(--navy);font-weight:600}.side form{padding:12px}.main{margin-left:212px;flex:1 1}.top{background:#fff;border-bottom:1px solid var(--line);padding:11px 22px;display:flex;align-items:center;gap:12px;position:-webkit-sticky;position:sticky;top:0;z-index:5}.top h1{font-size:17px;color:var(--navy)}.top .who{margin-left:auto;font-size:12.5px;color:#555}.wrap{padding:20px 22px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px}.kpi .l{font-size:12px;color:var(--mut)}.kpi .v{font-size:24px;font-weight:700;color:var(--navy);margin-top:4px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.panel h3{font-size:14px;color:var(--navy);margin-bottom:10px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;color:var(--mut);text-transform:uppercase;padding:8px;border-bottom:2px solid var(--line)}td{padding:9px 8px;border-bottom:1px solid var(--line)}.btn,td{font-size:13px}.btn{background:var(--navy);color:#fff;border:none;padding:9px 15px;border-radius:8px;cursor:pointer;font-weight:600}.btn:hover{background:var(--navy2)}.inp,select.inp{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13px;margin-top:4px;background:#fff}.field{margin-bottom:11px}.field label{font-size:12px;color:#555}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;background:#e6edf9;color:var(--navy)}.login{max-width:380px;margin:8vh auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}.login h2{color:var(--navy);margin-bottom:4px}.login p{color:var(--mut);font-size:13px;margin-bottom:16px}.err{background:#fbe5e2;color:var(--red);padding:9px 11px;border-radius:8px;font-size:12.5px;margin-bottom:10px}.muted{color:var(--mut);font-size:12px}.chart{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:11px}.arch{gap:3px;margin:3px 0}.arch,.tooth{display:flex;justify-content:center}.tooth{width:30px;height:38px;border:1px solid #c5cee0;border-radius:5px 5px 7px 7px;background:#fff;font-size:10px;align-items:center;cursor:pointer;color:#566}.tooth:hover{box-shadow:0 0 0 2px #dde6f7}.tooth.sel,.tooth:hover{border-color:var(--navy)}.tooth.sel{background:#e6edf9;font-weight:700}.tooth.done{background:#e3f5ec;border-color:var(--green);color:var(--green)}.tooth.plan{background:#fbf0df;border-color:#d9893a;color:#d9893a}.legend{font-size:11px;color:var(--mut);margin-top:6px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}.legend .dot{display:inline-block;width:11px;height:11px;border-radius:3px;vertical-align:-1px;border:1px solid #c5cee0}.legend .dot.done{background:#e3f5ec;border-color:var(--green)}.legend .dot.plan{background:#fbf0df;border-color:#d9893a}.sechead{font-size:9.5px;letter-spacing:1.5px;color:#8295bd;padding:11px 12px 4px}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:15px;gap:15px}.barrow{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:12.5px}.barnm{width:230px;color:#445}.bartrack{flex:1 1;background:#eef2f8;overflow:hidden}.barfill,.bartrack{border-radius:5px;height:16px}.barfill{display:block;background:var(--gold)}.barval{width:100px;text-align:right;font-weight:600;color:var(--navy)}.files{flex-wrap:wrap}.file,.files{display:flex;gap:8px}.file{border:1px solid var(--line);border-radius:8px;padding:7px 10px;align-items:center;background:#f9fbfe}.file,.xbtn{font-size:12px}.xbtn{background:none;border:none;color:#c0392b;cursor:pointer;padding:0 2px}input[type=file].inp{padding:6px}.pub-wrap{max-width:560px;margin:0 auto;padding:22px 16px 40px}.pub-head{background:var(--navy);color:#fff;border-radius:14px;padding:20px 22px;margin-bottom:16px;text-align:center}.pub-brand{font-size:22px;font-weight:700;letter-spacing:1px;line-height:1}.pub-brand small{display:block;font-size:10px;letter-spacing:5px;color:var(--gold);margin-top:3px;font-weight:600}.pub-tag{font-size:12px;color:#cdd8ef;margin-top:8px}.pub-foot{text-align:center;font-size:11px;color:var(--mut);margin-top:18px;line-height:1.5}.steps{margin-bottom:14px}.step,.steps{display:flex;gap:6px}.step{flex:1 1;color:var(--mut);background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 8px}.step,.step .snum{align-items:center;font-size:11px}.step .snum{display:inline-flex;justify-content:center;width:18px;height:18px;border-radius:50%;background:#e6edf9;color:var(--navy);font-weight:700;flex:none}.step.on{border-color:var(--navy);color:var(--navy);font-weight:600}.step.on .snum{background:var(--navy);color:#fff}.step.done .snum{background:var(--green);color:#fff}.slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));grid-gap:8px;gap:8px}.slot{display:block;text-align:center;padding:10px 6px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:600;color:var(--navy);background:#fff;cursor:pointer}.slot:hover{border-color:var(--navy);background:#e6edf9}.slot.taken{color:#b6bccb;background:#f3f5fa;border-style:dashed;text-decoration:line-through;cursor:not-allowed;font-weight:400}.bk-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:6px;font-size:13.5px;line-height:1.5}.bk-change{font-size:12px;color:var(--navy);font-weight:600;white-space:nowrap}.bk-change:hover{text-decoration:underline}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.tick{width:52px;height:52px;border-radius:50%;background:var(--green);color:#fff;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 8px}@media(max-width:480px){.steps .step{font-size:0}.steps .step .snum{font-size:11px}}.navburger,.navtoggle{display:none}@media(max-width:900px){.navburger{display:inline-flex;align-items:center;justify-content:center;width:36px;height:34px;border:1px solid var(--line);border-radius:8px;font-size:18px;color:var(--navy);cursor:pointer;background:#fff;flex:none}.side{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s ease;z-index:40;box-shadow:2px 0 18px rgba(0,0,0,.28)}.navtoggle:checked~.side{transform:translateX(0)}.main{margin-left:0}.kpis{grid-template-columns:repeat(2,1fr)}.grid2,.row{grid-template-columns:1fr}.barnm{width:120px}.wrap{padding:14px}table{display:block;overflow-x:auto;white-space:nowrap}}@media(max-width:560px){.kpis{grid-template-columns:1fr}.top h1{font-size:15px}.top .who{font-size:11px}}.tsearch{display:flex;align-items:center;gap:7px;background:#f1f4f9;border:1px solid var(--line);border-radius:8px;padding:6px 10px;min-width:170px;max-width:300px;flex:1 1}.tsearch input{border:none;background:none;outline:none;font-size:13px;width:100%;color:#222}.tright{margin-left:auto;display:flex;gap:10px}.ticon,.tright{align-items:center}.ticon{position:relative;line-height:1;color:var(--navy);padding:6px;border-radius:8px;display:inline-flex;justify-content:center}.ticon svg{display:block}.ticon:hover{background:#eef2f9}.tbadge{position:absolute;top:-5px;right:-7px;background:var(--red);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 5px;line-height:1.4}.tnew{position:relative}.tnew>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px;background:var(--green);color:#fff;font-size:13px;font-weight:600;padding:7px 12px;border-radius:8px;white-space:nowrap}.tnew>summary::-webkit-details-marker{display:none}.tnew[open]>.tmenu{display:block}.tmenu{display:none;position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:182px;padding:6px;z-index:50}.tmenu a{display:block;padding:9px 11px;border-radius:7px;font-size:13px;color:#333}.tmenu a:hover{background:#f1f4f9;color:var(--navy)}.twho{font-size:12.5px;color:#555;white-space:nowrap}.tsep{width:1px;height:26px;background:var(--line)}@media(max-width:900px){.tnew>summary span,.tsearch,.twho{display:none}}.navgroup{border:none;margin-bottom:2px}.navgroup>summary{list-style:none;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:9.5px;letter-spacing:1.5px;color:#8295bd;padding:11px 12px 5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navgroup>summary::-webkit-details-marker{display:none}.navgroup>summary .gsec{flex:1 1}.navgroup>summary .chev{flex:none;transition:transform .15s ease;opacity:.8}.navgroup[open]>summary .chev{transform:rotate(90deg)}.navlink{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:#cdd8ef;font-size:13.5px;margin-bottom:1px}.navlink:hover{background:hsla(0,0%,100%,.08);color:#fff}.navlink.on{background:#fff;color:var(--navy);font-weight:600}.navlink .ni{flex:none;opacity:.92}.navlabel{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbadge{flex:none;background:var(--red);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px;line-height:1.5;min-width:18px;text-align:center}