:root{--ink: #10233a;--ink-soft: #1b3d5c;--orange: #fe9b00;--paper: #fffffd;--card: #fffdf8;--line: #e3d8c4;--text: #1c2430;--muted: #5d6b7a;--danger: #8d2b24;--ok: #1d6b40;--info: #1d4e89;--warn: #8a5a00;--shadow: 0 16px 40px rgba(16, 35, 58, .08);--sans: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;--teal: #00b2b3;--teal-hover: #00877c;--orange-deep: #ff7e00;--yellow: #ffd800;color:var(--text);background:var(--paper);font-family:var(--sans);font-size:16px}*{box-sizing:border-box}html,body{height:100%}body{margin:0}a{color:var(--ink-soft)}h1,h2,p{margin-top:0}h1{font-size:2rem;letter-spacing:-.03em;line-height:1.1}h1 span{color:var(--muted);font-weight:600}h2{font-size:1.15rem}button,input,select{font:inherit}input,select{width:100%;border:1px solid var(--line);background:#fff;border-radius:8px;padding:.55rem .7rem}input.col-num{width:7rem}label{display:grid;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--muted)}.mark{color:var(--orange);font-weight:700;letter-spacing:-.04em}.login{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr}.login-story{position:relative;isolation:isolate;background:url(/images/login-harbor.jpg) center/cover no-repeat;color:#fff;padding:4rem 4.5rem}.login-story:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 12%,rgba(51,151,145,.38),transparent 34%),linear-gradient(160deg,#062e2b,#093d39 62%,#094844);opacity:.84;pointer-events:none}.login-story>*{position:relative;z-index:1}.login-story h1{font-size:3.2rem}.login-story .mark{font-size:1.4rem}.lede{font-size:1.2rem;max-width:38rem;color:#cce5e3}.login-story ol{padding-left:1.2rem;color:#cce5e3}.login-story li{margin:.7rem 0}.login-panel{position:relative;display:grid;align-content:center;padding:2rem 2rem 3.2rem}.login-version{position:absolute;right:2rem;bottom:1rem;margin:0;color:#a8b5c7;opacity:.85;font-size:.88rem;font-weight:400}.login-panel form,.demo{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.4rem;box-shadow:var(--shadow)}.login-panel form{display:grid;gap:.9rem}.demo{margin-top:1rem}.demo dl{margin:0}.demo div{margin:.45rem 0}.demo dt{font-weight:700}.demo dd{margin:0;color:var(--muted)}.app-shell{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden;background:var(--paper)}.app-header{position:relative;z-index:1;height:48px;flex:none;display:flex;align-items:center;background:var(--paper)}.menu-link{cursor:pointer;margin:8px;display:inline-flex}.menu-link img{width:32px;height:32px;display:block}.partner-name{margin-left:8px;font-weight:700;color:var(--ink)}.screen{position:relative;z-index:1;flex:1;min-height:0;min-width:0;overflow:auto;padding:1.6rem 1.8rem 3rem}.shell-main{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.port-pano{position:absolute;left:0;bottom:0;z-index:0;display:block;width:max(100%,1024px);height:auto;max-width:none;pointer-events:none}.app-footer{position:relative;z-index:2;flex:none;min-height:35px;display:flex;align-items:center;width:100%;border-top:2px solid var(--yellow);background:#fff;font-size:12px;font-weight:400;padding-right:8px}.app-logo{margin-left:4px;height:28px;width:auto}.footer-version{margin-left:auto;color:#64748b;font-size:.88rem;font-weight:400;white-space:nowrap}label.partner-switcher{display:flex;align-items:center;margin-left:30px;gap:0;font-size:12px;font-weight:400;color:var(--text)}.switcher-control{margin-left:5px;width:400px;height:23px;padding:0 6px;border-radius:2px}.footer-error{margin-left:12px;color:var(--danger);font-size:12px;font-weight:600}.menu-overlay{position:fixed;inset:0;z-index:11900;background:#00000080}.menu-sidebar{position:fixed;z-index:12000;top:0;left:0;width:400px;max-width:100%;height:100%;overflow:auto;background:var(--teal);color:#fff;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;font-family:Tahoma,Segoe UI,sans-serif;font-size:16px;font-weight:700}.menu-sidebar .app-name{height:41px;background:var(--orange-deep);display:flex;align-items:center;justify-content:center}.menu-sidebar ul{list-style:none;padding:0;margin:0;border-bottom:1px solid rgba(0,0,0,.1)}.menu-sidebar li{border-top:1px solid rgba(0,0,0,.1)}.menu-sidebar li:hover,.menu-sidebar a.active{background:var(--teal-hover)}.menu-sidebar a{color:#fff;text-decoration:none;display:block;padding:10px 10px 10px 20px}.menu-sidebar .user-info{padding:10px 20px;border-bottom:1px solid rgba(0,0,0,.1);font-weight:700;line-height:1.4}.menu-sidebar .sign-out{border-bottom:1px solid rgba(0,0,0,.1)}.menu-sidebar .sign-out .link{cursor:pointer;margin:20px 0 0;padding:10px 20px;display:block}.page-head,.actions,.toolbar,.pager,.plan-grid header,.form-row{display:flex;gap:.8rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:var(--warn);font-weight:700;margin-bottom:.2rem}.muted,.sub{color:var(--muted)}.sub{display:block;font-size:.82rem}.back{display:inline-block;margin-bottom:.8rem}.btn{border:1px solid transparent;border-radius:999px;padding:.55rem .95rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn input{display:none}.btn.primary{background:var(--orange);color:#1b1408;font-weight:700}.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn.danger{background:transparent;border-color:#e7b2ad;color:var(--danger)}.btn:disabled{opacity:.6;cursor:wait}.drop,.card,.empty,.stack{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;box-shadow:var(--shadow)}.drop{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin:1rem 0}.drop.over,.card.over{outline:2px solid var(--orange)}.empty{margin-top:1rem}.stack{margin:1rem 0;display:grid;gap:.8rem}.card.flat{box-shadow:none;margin:1rem 0}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1rem 0}.card header{margin-bottom:.4rem}.card p{color:var(--muted)}.file-meta{color:var(--text)!important;font-size:.92rem}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;margin:1rem 0}.kpis article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.75rem}.kpis span{display:block;color:var(--muted);font-size:.8rem}.kpis strong{font-size:1.5rem}.table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;margin:.6rem 0 1rem}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data th,table.data td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap}table.data th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fbf7ef}.mono{font-family:var(--mono);font-size:.86rem}.count{color:var(--muted);font-weight:600;font-size:.9rem}.toolbar{margin-top:1.2rem}.toolbar label{min-width:16rem}.pager{justify-content:flex-start;margin-bottom:1.4rem}.tag{display:inline-flex;border-radius:999px;padding:.1rem .5rem;background:#efe6d4;font-size:.78rem;font-weight:700}.tag.shifted{background:#d9e8f8;color:var(--info)}.tag.loaded{background:#d9f0e3;color:var(--ok)}.tag.remaining{background:#efe6d4;color:var(--ink)}.alert,.note{border-radius:10px;padding:.7rem .85rem}.alert{background:#fde8e4;color:var(--danger)}.alert.warn{background:#fff1cc;color:var(--warn)}.note{background:#e5f6ec;color:var(--ok)}.messages{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.35rem}.messages li{border-radius:8px;padding:.4rem .55rem;background:#f7f1e6;font-size:.88rem}.messages li.error{background:#fde8e4}.messages li.warning{background:#fff1cc}.messages li.info{background:#e7f0fa}.form-row{align-items:end}.form-row label{flex:1 1 12rem}@media(max-width:980px){.login,.plan-grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.login-story{padding:2rem 1.2rem}.login-story h1{font-size:2.2rem}.screen{padding:1rem}.page-head{flex-direction:column;align-items:stretch}.actions{width:100%;justify-content:flex-start}.drop{align-items:stretch;flex-direction:column}.toolbar label{min-width:0;width:100%}h1,.muted{overflow-wrap:anywhere}label.partner-switcher{margin-left:8px;flex:1}.switcher-control{width:min(400px,100%)}.app-footer{flex-wrap:wrap;padding-bottom:4px}.footer-version{margin-left:0;width:100%}}
