
    :root{--navy:#10223b;--navy2:#1c3553;--maroon:#751f3c;--maroon2:#a23c5a;--cream:#f6f7fa;--ink:#172236;--muted:#6c788b;--line:#e6e9ef;--white:#fff;--green:#147454;--amber:#ad7116;--red:#b43d46;--shadow:0 12px 30px rgba(10,32,65,.06)}
    *{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--cream)}
    button,select,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--maroon)}
    .app{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;flex:0 0 248px;max-height:100vh;background:linear-gradient(165deg,#152a45,#0d1c31);color:#fff;padding:30px 19px;display:flex;flex-direction:column;gap:28px;overflow:auto}
    .brand{display:flex;flex-direction:column;gap:12px;align-items:stretch;padding:0 4px}.brand-logo{width:100%;background:#fff;border-radius:12px;padding:10px 9px;box-shadow:0 8px 20px #06142640;display:flex;align-items:center;justify-content:center}.brand-logo img{width:100%;height:auto;display:block}.brand-copy{padding:2px 6px}.brand strong{display:block;font-size:15px;letter-spacing:.35px}.brand small{display:block;color:#b6c2d3;font-size:10px;letter-spacing:1.2px;margin-top:5px}
    .nav-title{color:#7f91a9;text-transform:uppercase;font-size:10px;letter-spacing:1.5px;margin:0 12px 12px}.nav{display:grid;gap:6px}.nav button{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#c4cfdd;padding:13px 14px;text-align:left;border-radius:12px;font-size:13px;font-weight:600}.nav button.active{color:#fff;background:#ffffff18;box-shadow:inset 3px 0 0 #d77996}.nav button:hover{background:#ffffff12;color:white}.nav-icon{width:20px;font-size:17px;text-align:center}.sidebar-foot{margin-top:auto;padding:16px 12px;border-top:1px solid #ffffff23;font-size:12px;color:#b0bfd3;line-height:1.6}.sidebar-foot strong{display:block;color:white;margin-bottom:4px}.private{display:inline-flex;gap:7px;align-items:center;border:1px solid #ffffff3b;color:#e3e9f0;padding:5px 9px;border-radius:100px;margin-top:12px;font-size:10px;letter-spacing:.4px}
    .main{flex:1;min-width:0;padding:30px 38px 55px;max-width:1620px}.top{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:28px}.eyebrow{text-transform:uppercase;font-size:11px;color:var(--maroon);letter-spacing:2px;font-weight:800}.top h1{font-size:28px;letter-spacing:-1px;margin:8px 0 6px}.sub{color:var(--muted);font-size:13px;margin:0}.top-right{display:flex;align-items:center;gap:12px}.period{display:flex;align-items:center;gap:8px;padding:7px 9px 7px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.period label{font-size:11px;white-space:nowrap;color:var(--muted)}.period select,.period input{border:0;background:transparent;color:var(--ink);font-size:13px;font-weight:700;padding:5px 6px;outline:none}.period input{width:73px;min-width:0;appearance:textfield}.period input::-webkit-inner-spin-button{opacity:.6}.reload{border:1px solid var(--line);border-radius:12px;padding:12px;background:white;color:var(--navy);font-size:15px}.reload:hover{border-color:#a3b1c4}
    .notice{background:#fff7e8;color:#7b5411;border:1px solid #f0d8a4;border-radius:12px;padding:13px 15px;margin-bottom:20px;font-size:12px;line-height:1.6}.notice.error{color:#882d36;background:#fff4f5;border-color:#ffd6d9}.notice.success{color:#136345;background:#f1fbf6;border-color:#c7e6d5}.hidden{display:none!important}
    .page{display:none;animation:show .18s ease}.page.active{display:block}@keyframes show{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
    .grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.metric{background:#fff;padding:21px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);min-height:135px}.metric .label{color:var(--muted);font-size:12px;font-weight:600;margin-bottom:14px}.metric .number{font-size:31px;line-height:1;font-weight:800;color:var(--navy);letter-spacing:-1.5px}.metric .hint{font-size:11px;color:var(--muted);margin-top:11px}.metric.highlight{background:linear-gradient(140deg,var(--maroon),#4c1835);color:#fff;border:none}.metric.highlight .number,.metric.highlight .label,.metric.highlight .hint{color:#fff}.metric.highlight .hint{opacity:.75}
    .panel{background:white;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);margin-top:18px;padding:23px}.panel-head{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:18px}.panel h2{font-size:17px;letter-spacing:-.4px;margin:0}.panel p{font-size:12px;color:var(--muted);line-height:1.6;margin:7px 0 0}.section-label{font-size:10px;color:var(--maroon);font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px}.split{display:grid;grid-template-columns:1.38fr 1fr;gap:18px}.progress-wrap{display:flex;align-items:center;gap:10px;margin:13px 0}.progress-label{font-size:12px;width:142px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-bar{height:9px;flex:1;background:#f0f2f6;border-radius:100px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--maroon),#d98ba1);border-radius:100px}.progress-val{font-size:11px;width:46px;font-weight:700;text-align:right}
    .pill{display:inline-block;border:1px solid transparent;border-radius:100px;padding:5px 9px;font-size:10px;font-weight:700;white-space:nowrap}.pill.good{background:#e8f8f0;color:#16764b}.pill.warn{background:#fff5e7;color:#9b6510}.pill.bad{background:#fff0f0;color:#a93645}.pill.neutral{background:#f1f3f7;color:#607189}.pill.purple{background:#f5edfa;color:#794c92}
    .table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:12px}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table thead{background:#f5f7fa}.data-table th{color:#6a7483;font-size:10px;text-align:left;padding:12px;font-weight:800;letter-spacing:.4px;white-space:nowrap}.data-table td{padding:12px;border-top:1px solid #eff1f5;vertical-align:middle}.data-table tr:hover td{background:#fafbfd}.data-table strong{color:var(--navy)}.ranking-no{color:var(--maroon);font-weight:850;font-size:15px}.muted{color:var(--muted)}
    .day-nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:18px}.daycell{border:1px solid var(--line);background:#fff;border-radius:11px;min-height:59px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.daycell .d{font-size:15px;font-weight:800}.daycell .w{font-size:9px;color:var(--muted)}.daycell.off{background:#f5f6f8;color:#99a2ae}.daycell.off .w{color:#a9b1bb}.daycell.selected{background:var(--navy);border-color:var(--navy);color:white}.daycell.selected .w{color:#dae3ec}.daycell.today{box-shadow:inset 0 0 0 1.5px #aa6581}.daycell-dot{width:5px;height:5px;border-radius:50%;background:#16906b;position:absolute;transform:translate(16px,-18px)}
    .daily-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}.seg{display:inline-flex;gap:3px;background:#eff1f5;border-radius:10px;padding:4px}.seg button{border:none;background:none;color:#657186;border-radius:7px;font-size:12px;padding:9px 11px;font-weight:700}.seg button.active{color:var(--navy);background:#fff;box-shadow:0 2px 7px #16314a15}.day-group{margin-top:13px;background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.day-group-head{background:#fff;border:none;padding:18px;width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}.day-group-head strong{font-size:14px}.day-group-head span{font-size:11px;color:var(--muted)}.day-group-head .head-actions{display:flex;align-items:center;gap:10px}.day-group.off .day-group-head{background:#f8f9fb}.input{border:1px solid #e1e5ec;border-radius:8px;padding:9px 10px;font-size:11px;width:100%;background:#fff;color:#1a2a40;min-width:115px}.input:focus{border-color:#aa6c85;outline:2px solid #b9789124}.input.textarea{resize:vertical;min-height:37px}.data-table .edit-branch{min-width:160px;line-height:1.5}.data-table .field-status{min-width:147px}.data-table .field-platform{min-width:135px}.data-table .field-link{min-width:205px}.data-table .field-note{min-width:185px}.btn{border:0;border-radius:10px;padding:11px 14px;font-size:12px;font-weight:750;display:inline-flex;gap:8px;align-items:center;justify-content:center;background:var(--navy);color:#fff}.btn:hover{filter:brightness(1.1)}.btn.secondary{background:#eef1f6;color:#203650}.btn.ghost{background:#fff;color:var(--navy);border:1px solid #dce1e9}.btn.maroon{background:var(--maroon)}.btn.tiny{font-size:10px;padding:8px 9px;border-radius:8px}.tagline{font-size:11px;color:var(--muted)}
    .owner-hero{background:linear-gradient(126deg,#142941,#273d5d 64%,#64223d);color:white;border-radius:16px;padding:30px;margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.owner-hero h2{margin:0;font-size:22px}.owner-hero p{color:#d3dce9;font-size:12px;max-width:510px;line-height:1.65}.owner-actions{display:flex;gap:10px;flex-wrap:wrap}.owner-hero .btn{background:white;color:var(--maroon)}
    .modal-back{position:fixed;inset:0;background:#061323aa;display:flex;align-items:center;justify-content:center;padding:18px;z-index:30}.modal{background:#fff;border-radius:18px;max-width:520px;width:100%;padding:25px;box-shadow:0 25px 70px #07132160;max-height:88vh;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal h2{margin:0;font-size:18px}.close{border:0;background:#eef0f4;width:34px;height:34px;border-radius:10px;font-size:20px}.form-field{margin:16px 0}.form-field label{display:block;font-size:12px;font-weight:750;margin-bottom:7px}.form-field .input{font-size:13px;padding:12px;min-width:0}.proof-list{display:grid;gap:10px;margin-top:13px}.proof-item{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;gap:10px;align-items:flex-start;justify-content:space-between;font-size:12px}.proof-item small{display:block;color:var(--muted);margin-top:3px}.float-alert{position:fixed;bottom:22px;right:22px;max-width:420px;border-radius:11px;padding:14px 17px;background:#122b43;color:#fff;box-shadow:0 18px 35px #10243b40;z-index:40;font-size:12px;line-height:1.5}.spinner{display:inline-block;width:14px;height:14px;border:2px solid #ffffff88;border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
    @media(max-width:1160px){.sidebar{flex-basis:210px}.main{padding:25px}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}.progress-label{width:200px}}
    @media(max-width:760px){.app{display:block}.sidebar{position:relative;max-height:none;flex-basis:auto;padding:14px 16px;gap:12px}.brand{padding:0;flex-direction:row;align-items:center;gap:12px}.brand-logo{width:105px;flex:0 0 105px;padding:5px 6px;border-radius:9px}.brand-copy{padding:0}.brand strong{font-size:13px}.nav-title,.sidebar-foot{display:none}.nav{display:flex;overflow:auto}.nav button{flex:0 0 auto;padding:11px 10px;font-size:11px}.nav-icon{width:14px}.main{padding:18px 13px 40px}.top{align-items:flex-start;flex-direction:column}.top h1{font-size:22px}.top-right{width:100%;flex-wrap:wrap}.period{flex:1;flex-basis:100%;order:-1;justify-content:space-between;gap:5px;padding:7px}.period label{font-size:9px}.period input{width:58px;font-size:12px}.period select{font-size:12px;max-width:120px}.day-nav{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.daycell{min-height:48px;border-radius:8px}.daycell .d{font-size:13px}.daycell .w{font-size:8px}.panel{padding:15px}.owner-hero{flex-direction:column;align-items:stretch}.grid4{gap:9px}.metric{min-height:118px;padding:16px}.metric .number{font-size:27px}.progress-label{width:105px}}


/* Protected layout: never display dashboard until server has authorized Firebase user */
.app{display:none}.app.auth-visible{display:flex}
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:25px;background:radial-gradient(circle at 18% 10%,#375473 0%,transparent 38%),linear-gradient(145deg,#0b1c35 0%,#182c49 68%,#661d37 100%)}
.login-screen.auth-hidden{display:none}
.login-card{background:#fff;width:min(100%,450px);border-radius:22px;padding:30px 34px;box-shadow:0 28px 90px #030b1966}
.login-logo{width:174px;margin:0 auto 22px;padding:9px;border:1px solid #e9edf4;border-radius:13px;background:white}
.login-logo img{width:100%;display:block;height:auto}
.login-kicker{text-align:center;color:#872645;letter-spacing:2px;font-weight:800;font-size:10px}
.login-card h1{font-size:25px;letter-spacing:-.65px;text-align:center;color:#132741;margin:8px 0 10px}
.login-description{text-align:center;color:#657286;font-size:12px;line-height:1.65;margin:0 0 26px}
#loginForm{display:grid;gap:9px}#loginForm label{font-size:12px;font-weight:800;color:#28354b;margin-top:9px}
#loginForm input{padding:13px 15px;border:1px solid #d9dfe9;border-radius:10px;color:#172236;background:#fff;min-width:0;outline-color:#8f2e4c}
#loginForm button{margin-top:14px;padding:14px 16px;border:0;color:#fff;background:#812642;border-radius:10px;font-size:13px;font-weight:800;display:flex;justify-content:space-between}
#loginForm button:hover{background:#682139}#loginForm button:disabled{opacity:.6}
.auth-message{font-size:12px;line-height:1.5;margin-top:15px;color:#526174;text-align:center;min-height:20px}
.auth-message.error{color:#aa3044}.auth-message.success{color:#147454}
.auth-help{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}
.auth-help button{font-size:11px;color:#7e2b44;background:none;border:0;text-decoration:underline;padding:5px}
.login-tip{font-size:11px;color:#64748b;text-align:center;line-height:1.6;margin:14px 0 0}.login-footer{text-align:center;border-top:1px solid #edf0f5;padding-top:15px;margin:18px 0 0;color:#7b8593;font-size:10px}
@media(max-width:760px){.app.auth-visible{display:block}.login-card{padding:23px}.login-screen{padding:17px}}

  