:root{--bg:#111;--surface:#181818;--panel:#1d1d1d;--line:#303030;--muted:#919191;--orange:#f47749;--orange-soft:#ff9b76}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:#f7f7f7;font-family:Arial,Helvetica,sans-serif}
button,input,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.eyebrow{color:var(--orange);font-size:11px;font-weight:800;letter-spacing:.18em}
.on-logo{display:block;object-fit:contain}
.loading-logo{width:100px;height:60px}
.login-logo{width:190px;height:92px;object-position:left center}
.sidebar-logo{width:135px;height:70px;object-position:left center}
.mobile-on-logo{width:130px;height:64px;object-position:left center}
.brand-lockup{display:flex;align-items:center;gap:16px;font-size:24px;font-weight:900;letter-spacing:.26em}
.brand-lockup.small{padding:0 4px 24px}
.loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;color:#777;font-size:13px}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.12fr .88fr}
.login-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:56px 8vw 46px;background:radial-gradient(circle at 15% 80%,#2c1d18 0,transparent 36%),linear-gradient(145deg,#171717,#0d0d0d);border-right:1px solid #292929}
.login-brand:after{content:"";position:absolute;width:520px;height:520px;right:-270px;bottom:-260px;border:1px solid #3a251e;border-radius:50%;box-shadow:0 0 0 90px rgba(244,119,73,.025),0 0 0 180px rgba(244,119,73,.018)}
.brand-message{position:relative;z-index:1;max-width:660px}
.brand-message h1{font-size:clamp(42px,5vw,74px);line-height:1.04;letter-spacing:-.055em;margin:22px 0 28px}
.brand-message h1 em{color:var(--orange);font-style:normal}
.brand-message p{max-width:500px;color:#aaa;font-size:17px;line-height:1.7}
.secure-note{color:#888;font-size:12px}
.secure-note span{color:var(--orange);margin-right:8px}
.login-panel{display:grid;place-items:center;padding:44px;background:#181818}
.login-card{width:min(420px,100%)}
.login-card h2{font-size:36px;letter-spacing:-.04em;margin:16px 0 8px}
.intro{color:#8f8f8f;line-height:1.55;margin:0 0 32px}
.login-card label{display:block;color:#c8c8c8;font-size:13px;font-weight:700;margin:18px 0 9px}
.login-card input{width:100%;height:54px;border:1px solid #3a3a3a;border-radius:9px;background:#111;color:#fff;padding:0 16px;outline:none}
.login-card input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(244,119,73,.12)}
.primary-button{width:100%;height:56px;margin-top:24px;border:0;border-radius:9px;background:var(--orange);color:#17100d;font-weight:900}
.primary-button:disabled{opacity:.65;cursor:wait}
.form-error{color:#ff927d;background:#3a1d18;border:1px solid #633025;padding:10px 12px;border-radius:8px;font-size:13px}
.privacy{text-align:center;color:#737373;font-size:11px;margin-top:18px}
.privacy span{color:var(--orange)}
.mobile-logo{display:none}
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:30px 20px;background:#171717;border-right:1px solid #292929}
.sidebar nav{display:flex;flex-direction:column;gap:7px}
.nav-item{width:100%;height:46px;border:0;border-radius:8px;background:transparent;color:#8f8f8f;display:flex;align-items:center;gap:14px;padding:0 15px;text-align:left;font-size:13px;font-weight:700}
.nav-item span{font-size:18px}
.nav-item:hover,.nav-item.active{background:#27201d;color:#fff}
.nav-item.active{box-shadow:inset 3px 0 var(--orange)}
.nav-item.active span{color:var(--orange)}
.nav-item.logout{margin-top:auto}
.dashboard{padding:34px 3.5vw 60px;max-width:1500px;width:100%;margin:auto}
.topbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:28px;border-bottom:1px solid #292929}
.topbar h1{font-size:34px;margin:6px 0 0;letter-spacing:-.04em}
.user-chip{display:flex;align-items:center;gap:12px}
.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#34251f;color:var(--orange);font-size:12px;font-weight:900}
.user-chip div{display:flex;flex-direction:column;gap:3px}
.user-chip strong{font-size:13px}
.user-chip small{font-size:10px;color:#777;letter-spacing:.1em}
.period-row{display:flex;align-items:center;justify-content:space-between;margin:26px 0 18px;color:#909090;font-size:12px}
.period-row select{height:40px;padding:0 36px 0 14px;border:1px solid #333;border-radius:8px;background:#1d1d1d;color:#ddd}
.virtual-period{color:#888;font-size:10px;padding:0 5px}
.status-dot{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#50c878;box-shadow:0 0 0 4px rgba(80,200,120,.1)}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.metric-grid.analysis-metrics{grid-template-columns:repeat(3,1fr)}
.metric{min-height:145px;padding:22px;border:1px solid #2d2d2d;border-radius:12px;background:#1a1a1a;display:flex;flex-direction:column}
.metric>span{color:#999;font-size:12px}
.metric strong{font-size:28px;letter-spacing:-.035em;margin:20px 0 10px}
.metric small{color:#666;font-size:10px}
.metric.revenue{border-top:2px solid var(--orange)}
.metric.revenue strong,.metric.result strong{color:var(--orange-soft)}
.dashboard-grid{display:grid;grid-template-columns:1.65fr .85fr;gap:14px;margin-top:14px}
.panel{border:1px solid #2d2d2d;border-radius:12px;background:#1a1a1a;padding:25px}
.panel h2{font-size:20px;margin:7px 0}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between}
.live-pill{font-size:10px;color:#69ce8d;background:#172b1e;border:1px solid #254c32;border-radius:30px;padding:7px 10px}
.bar-list{display:flex;flex-direction:column;gap:19px;margin-top:28px}
.bar-list label{display:flex;justify-content:space-between;font-size:11px;color:#999;margin-bottom:8px}
.bar-list b{color:#ddd}
.bar-list progress{width:100%;height:6px;border:0;border-radius:8px;background:#292929;accent-color:var(--orange)}
.quick-panel p,.module-head p{color:#888;font-size:13px;line-height:1.6}
.outline-button{width:100%;height:44px;margin:10px 0 23px;border:1px solid #65402f;border-radius:8px;background:#281e1a;color:var(--orange-soft);font-weight:800}
.security-badge{display:flex;align-items:center;gap:12px;padding-top:20px;border-top:1px solid #2b2b2b}
.security-badge>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#172a1e;color:#62c985}
.security-badge div{display:flex;flex-direction:column;gap:4px}
.security-badge strong{font-size:11px}
.security-badge small{color:#666;font-size:9px}
.module-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}
.module-head h2{font-size:26px;margin:8px 0}
.module-head p{margin:0}
.primary-action{height:42px;padding:0 18px;border:0;border-radius:8px;background:var(--orange);color:#18100d;font-size:12px;font-weight:900}
.table-panel{padding:0;overflow:auto}
table{width:100%;border-collapse:collapse;min-width:720px}
th,td{text-align:left;padding:17px 20px;border-bottom:1px solid #2a2a2a;font-size:12px}
th{color:#777;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
td{color:#aaa}
td strong{color:#e8e8e8}
.status{display:inline-flex;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:800}
.status.registered{color:#6ed08e;background:#172b1e}
.status.pending{color:#f3b76b;background:#332719}
.empty-state{text-align:center;padding:55px;color:#666}

@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}
.dashboard-grid{grid-template-columns:1fr}
.login-page{grid-template-columns:1fr}
.login-brand{display:none}
.login-panel{min-height:100vh}
.mobile-logo{display:flex;align-items:center;gap:14px;margin-bottom:42px;letter-spacing:.2em}
}
@media(max-width:720px){.app-shell{grid-template-columns:1fr}
.sidebar{position:fixed;z-index:10;left:0;right:0;bottom:0;top:auto;height:68px;flex-direction:row;padding:9px 12px;border-right:0;border-top:1px solid #2d2d2d}
.sidebar .brand-lockup,.sidebar .logout{display:none}
.sidebar nav{width:100%;flex-direction:row;justify-content:space-around}
.nav-item{width:auto;height:48px;padding:0 13px;font-size:0}
.nav-item span{font-size:20px}
.nav-item.active{box-shadow:inset 0 -3px var(--orange)}
.dashboard{padding:25px 18px 90px}
.user-chip div{display:none}
.metric-grid{grid-template-columns:1fr 1fr}
.metric{padding:17px;min-height:125px}
.metric strong{font-size:22px}
.topbar h1{font-size:28px}
.login-panel{padding:28px}
.login-card h2{font-size:32px}
.module-head{align-items:flex-start;gap:18px;flex-direction:column}
}
@media(max-width:430px){.metric-grid{grid-template-columns:1fr}
}

.period-row{gap:18px}
.period-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.period-state.closed .status-dot{background:#8b8b8b;box-shadow:0 0 0 4px rgba(139,139,139,.1)}
.period-button{height:40px;padding:0 13px;border-radius:8px;background:#1d1d1d;color:#d3d3d3;border:1px solid #383838;font-size:11px;font-weight:800}
.period-button.close{color:#ffad91;border-color:#68402f}
.period-button.reopen{color:#75d794;border-color:#2b603c}
.period-button.new{background:#2a1e19;color:#ff9b76;border-color:#68402f}
.period-button:disabled{opacity:.5;cursor:wait}
@media(max-width:800px){.period-row{align-items:flex-start;flex-direction:column}
.period-actions{justify-content:flex-start}
.period-button{padding:0 10px;font-size:10px}
}

.sheet-heading{align-items:center}
.sheet-actions{display:flex;align-items:center;gap:9px}
.secondary-action{height:42px;padding:0 15px;border:1px solid #424242;border-radius:8px;background:#202020;color:#ccc;font-size:11px;font-weight:800}
.locked-period{color:#aaa;background:#242424;border:1px solid #3a3a3a;border-radius:8px;padding:12px 14px;font-size:11px}
.sheet-panel{border-radius:10px}
.sheet-table{counter-reset:sheet-row;min-width:920px}
.sheet-row{counter-increment:sheet-row}
.sheet-row .row-number:before{content:counter(sheet-row);color:#666}
.sheet-table th,.sheet-table td{padding:0;border-right:1px solid #2b2b2b}
.sheet-table th{padding:12px 10px;background:#202020;position:sticky;top:0;z-index:1}
.sheet-table th:first-child,.sheet-table td:first-child{width:42px;text-align:center;background:#1f1f1f}
.sheet-table input,.sheet-table select{width:100%;height:42px;border:0;border-radius:0;outline:0;background:#171717;color:#ddd;padding:0 10px;font-size:11px}
.sheet-table input:focus,.sheet-table select:focus{background:#231c19;box-shadow:inset 0 0 0 2px var(--orange)}
.sheet-table input:disabled,.sheet-table select:disabled{color:#888;background:#191919;cursor:not-allowed}
.sheet-table td:nth-child(2){min-width:132px}
.sheet-table td:nth-child(3){min-width:260px}
.sheet-table td:last-child{min-width:130px}
.recurrence-cell{min-width:112px}
.recurrence-badge{display:block;text-align:center;color:#ffad91;font-weight:800}
.sheet-help{margin:11px 2px;color:#666;font-size:10px}
@media(max-width:720px){.sheet-heading{align-items:flex-start}.sheet-actions{width:100%}.sheet-actions button{flex:1}.sheet-panel{max-width:calc(100vw - 36px)}}

.analysis-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:16px;border:1px solid #2d2d2d;border-radius:10px;background:#181818}
.analysis-controls label{display:flex;flex-direction:column;gap:7px;color:#888;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.analysis-controls select,.analysis-controls input{height:40px;min-width:190px;padding:0 12px;border:1px solid #383838;border-radius:8px;background:#202020;color:#ddd}
.custom-range{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.metric.projection{border-top:2px solid #4e83c2}
.metric.projection strong{color:#8dbdf5}
@media(max-width:1000px){.metric-grid.analysis-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.metric-grid.analysis-metrics{grid-template-columns:1fr}.analysis-controls select,.analysis-controls input{min-width:160px}}

.payment-button{width:34px;height:32px;border:1px solid #444;border-radius:7px;background:#202020;color:#aaa;cursor:pointer}
.payment-button:hover,.payment-button.has-payment{border-color:var(--orange);color:var(--orange)}
.payment-disabled{display:block;text-align:center;color:#555}
.modal-overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}
.payment-modal{position:relative;width:min(620px,100%);max-height:90vh;overflow:auto;padding:30px;border:1px solid #383838;border-radius:14px;background:#181818;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.payment-modal h2,.settings-card h2{margin:8px 0 22px;font-size:24px}
.modal-close{position:absolute;right:18px;top:14px;border:0;background:transparent;color:#aaa;font-size:30px;cursor:pointer}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.settings-card{min-width:0}
.settings-form{display:grid;gap:10px;margin-bottom:22px}
.settings-form input,.settings-form select,.settings-form textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid #3a3a3a;border-radius:8px;background:#151515;color:#ddd}
.settings-form textarea{min-height:92px;resize:vertical}
.settings-card .table-panel{max-height:360px}
.toggle-setting{padding:7px 10px;border:1px solid #4a3a32;border-radius:7px;background:#241d19;color:#ff9b76;font-size:10px;font-weight:800}
@media(max-width:1000px){.settings-grid{grid-template-columns:1fr}}


.weekly-panel{margin-top:16px}
.weekly-panel .panel-heading p{margin:6px 0 0;color:#888;font-size:12px}
.week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.week-card{overflow:hidden;border:1px solid #303030;border-radius:10px;background:#171717}
.week-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;border-bottom:1px solid #2b2b2b;background:#1d1d1d}
.week-card-head div{display:grid;gap:5px}
.week-card-head span{color:var(--orange);font-size:9px;font-weight:900;letter-spacing:.12em}
.week-card-head div strong{color:#ddd;font-size:13px}
.week-card-head>b{color:#ff9b76;font-size:18px}
.week-payments{display:grid}
.week-payment{display:grid;grid-template-columns:58px minmax(0,1fr) 70px 90px;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid #272727;font-size:11px}
.week-payment time{color:#999}
.week-payment span{overflow:hidden;color:#ddd;text-overflow:ellipsis;white-space:nowrap}
.week-payment small{padding:4px 6px;border-radius:20px;text-align:center;font-size:8px;font-weight:800}
.week-payment small.pending{color:#f3b76b;background:#332719}
.week-payment small.registered{color:#6ed08e;background:#172b1e}
.week-payment>strong{text-align:right;color:#eee}
.week-empty{margin:0;padding:24px 16px;color:#666;font-size:11px}
.week-card footer{display:flex;justify-content:space-between;padding:12px 16px;color:#888;font-size:10px}
.week-card footer strong{color:#ff9b76;font-size:12px}
@media(max-width:1000px){.week-grid{grid-template-columns:1fr}}
@media(max-width:600px){.week-payment{grid-template-columns:52px minmax(0,1fr) 78px}.week-payment small{display:none}.week-card-head{align-items:flex-start}.week-card-head>b{font-size:16px}}
