:root{--bg:#101820;--panel:#17232d;--panel2:#1c2a35;--line:#2b3b47;--text:#f4f2ec;--muted:#9aa9b2;--gold:#d7b46a;--gold2:#f0d79f;--green:#79c6a0;--red:#e59a8d;--shadow:0 16px 40px #0003}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.shell{max-width:1440px;margin:auto;padding:0 34px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px}.mark{width:42px;height:42px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold2);font-family:Georgia,serif;font-size:27px}.brand-name{font-size:17px;letter-spacing:2.5px;font-weight:800}.brand-name span{color:var(--gold)}.brand-sub,.eyebrow,.kpi-label,.period-label{font-size:10px;letter-spacing:1.8px;color:var(--muted);font-weight:700}.brand-sub{font-size:9px;margin-top:2px}.top-actions{display:flex;align-items:center;gap:12px}.status{font-size:12px;color:var(--muted)}.status:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:8px}.status.offline:before{background:var(--red)}.tabs{display:flex;gap:7px;padding:18px 0 0;border-bottom:1px solid var(--line)}.tab{background:none;border:0;color:var(--muted);padding:12px 18px;border-bottom:2px solid transparent;font-size:13px}.tab.active{color:var(--gold2);border-color:var(--gold)}main{min-height:70vh}.view{display:none;padding:34px 0 55px}.view.active{display:block}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1{font-size:30px;letter-spacing:-.7px;margin:4px 0}.eyebrow{color:var(--gold);margin:0}.muted{color:var(--muted);margin:3px 0 0;font-size:13px}.primary,.secondary,.ghost,.text-btn,.file-button{border-radius:8px;padding:11px 16px;font-size:13px;font-weight:700;transition:.15s}.primary{background:var(--gold);color:#18212a;border:1px solid var(--gold)}.primary:hover{background:var(--gold2)}.secondary,.file-button{background:var(--panel2);border:1px solid var(--line);color:var(--text)}.secondary:hover,.file-button:hover{border-color:var(--gold)}.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}.text-btn{background:none;border:0;color:var(--gold2);padding:5px}.notice{padding:12px 15px;border-radius:9px;font-size:12px;margin:0 0 24px}.warning{background:#6b54251f;border:1px solid #8b713b;color:#e7d5a9}.compact{margin-top:12px}.period-row{display:flex;align-items:center;justify-content:space-between;margin:25px 0 13px}.segmented{background:var(--panel);border:1px solid var(--line);padding:3px;border-radius:9px;display:flex}.period{border:0;background:transparent;color:var(--muted);padding:7px 17px;border-radius:6px;font-size:12px}.period.active{background:var(--gold);color:#18212a;font-weight:800}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi,.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.kpi{padding:20px 21px;min-height:132px}.kpi.featured{background:linear-gradient(135deg,#28323a,#1b2933);border-color:#806b42}.kpi-label{letter-spacing:1.2px}.kpi-value{font-size:29px;font-weight:750;letter-spacing:-.7px;margin:12px 0 2px}.featured .kpi-value{color:var(--gold2)}.kpi-foot{font-size:11px;color:var(--muted)}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:16px}.panel{padding:20px;margin-bottom:15px}.panel h2{font-size:16px;margin:0 0 2px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.mix-bars{display:grid;gap:16px}.mix-row{display:grid;grid-template-columns:90px 1fr 95px;gap:12px;align-items:center;font-size:12px}.mix-track{height:8px;background:#2a3943;border-radius:20px;overflow:hidden}.mix-fill{height:100%;background:var(--gold);border-radius:20px}.mix-row:nth-child(2) .mix-fill{background:#83b9aa}.mix-row:nth-child(3) .mix-fill{background:#9a8bb8}.mix-value{text-align:right;color:var(--muted)}.latest-report{display:grid;grid-template-columns:1fr 1fr;gap:12px}.latest-cell{padding:12px;background:var(--panel2);border-radius:8px}.latest-cell span{display:block;color:var(--muted);font-size:10px}.latest-cell strong{display:block;font-size:17px;margin-top:3px}.table-panel{margin-top:15px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:10px;letter-spacing:1.2px;color:var(--muted);font-weight:700;padding:11px 12px;border-bottom:1px solid var(--line)}td{font-size:12px;padding:13px 12px;border-bottom:1px solid #2b3b474d}tbody tr:last-child td{border-bottom:0}.num{font-variant-numeric:tabular-nums}.source-tag{font-size:10px;padding:4px 7px;border-radius:20px;background:#263741;color:#c6d1d6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-panel{margin:0}.fields{display:grid;gap:13px}.fields.two{grid-template-columns:1fr 1fr}.fields label,.full-label{font-size:11px;color:#c4cdd1;display:grid;gap:6px}.fields input,.filters input,.full-label textarea{width:100%;background:#101a22;border:1px solid #33434f;border-radius:7px;padding:10px 11px;color:var(--text);outline:none;min-width:0}.fields input:focus,.filters input:focus,textarea:focus{border-color:var(--gold)}input[readonly]{color:var(--gold2);background:#1e2b34}.full-label{width:100%}textarea{resize:vertical}.calc-strip{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:17px;padding-top:13px;color:var(--muted);font-size:12px}.calc-strip strong{font-size:16px;color:var(--gold2)}.field-hint{font-size:10px;color:var(--muted);margin:9px 0 0}.auto-tag{font-size:8px;color:var(--gold);margin-left:4px;letter-spacing:1px}.button-row{display:flex;gap:9px;align-items:center}.form-footer{display:flex;align-items:center;justify-content:space-between;padding:17px 3px}.filters{display:flex;gap:10px;margin-bottom:16px}.filters input{max-width:230px}.filters input[type=search]{flex:1;max-width:400px}.action-btn{border:0;background:none;color:var(--gold2);font-size:12px;padding:4px 7px}.action-btn.delete{color:var(--red)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.settings-grid .panel{margin:0}.db-status{margin:16px 0;padding:10px 12px;background:var(--panel2);border-radius:7px;font-size:12px;color:var(--green)}.import-stats{margin:12px 0;color:var(--gold2);font-size:13px}.file-button{display:inline-flex;position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:#e9d6a6;color:#17232d;padding:11px 17px;border-radius:8px;font-size:12px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:5}.toast.show{opacity:1;transform:translate(-50%,0)}footer{border-top:1px solid var(--line);padding:20px 0 28px;text-align:center;font-size:10px;letter-spacing:1.6px;color:var(--muted)}footer span{color:var(--gold);padding:0 5px}@media(max-width:900px){.shell{padding:0 18px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.form-grid,.settings-grid{grid-template-columns:1fr}}@media(max-width:620px){.shell{padding:0 13px}.topbar{height:70px}.brand-name{font-size:14px}.status{font-size:10px}.tabs{overflow:auto;gap:0}.tab{padding:11px 12px;white-space:nowrap;font-size:12px}.view{padding-top:25px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:25px}.page-heading>.primary,.page-heading .button-row{width:100%}.page-heading .button-row button{flex:1}.kpi-grid{gap:9px}.kpi{padding:15px;min-height:118px}.kpi-value{font-size:22px}.kpi-label{font-size:9px}.grid-two{grid-template-columns:1fr}.panel{padding:16px}.fields.two{grid-template-columns:1fr 1fr}.form-footer{align-items:flex-start;flex-direction:column;gap:10px}.form-footer button{width:100%}.filters{flex-wrap:wrap}.filters input,.filters input[type=search]{max-width:none;flex:1;min-width:130px}.period-row{margin-top:20px}.latest-report{gap:8px}}

/* v2 private access + complete monthly calendar */
.auth-gate{position:fixed;inset:0;z-index:20;background:#0b1218f5;display:grid;place-items:center;padding:20px}.auth-gate[hidden]{display:none}.auth-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow);display:grid;gap:13px}.auth-card h1{font-size:25px;margin:0}.auth-mark{margin-bottom:3px}.auth-card label{display:grid;gap:7px;color:#c4cdd1;font-size:12px}.auth-card input{background:#101a22;border:1px solid #33434f;border-radius:7px;padding:12px;color:var(--text)}.auth-error{min-height:18px;color:var(--red);font-size:12px;margin:0}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin:16px 0 12px;font-size:13px}.calendar-legend{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:10px}.calendar-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.calendar-legend .has-report{background:var(--green)}.calendar-legend .no-report{background:#9aa9b2}.history-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:18px}.cal-weekday{text-align:center;color:var(--muted);font-size:10px;padding:5px 0}.cal-day{min-height:58px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);padding:7px;text-align:left;display:flex;flex-direction:column;justify-content:space-between}.cal-day .day-num{font-size:12px;font-weight:700}.cal-day .day-status{font-size:9px;color:var(--muted)}.cal-day.reported{border-color:#477b68;background:#1d352f}.cal-day.reported .day-status{color:#9ad7b8}.cal-day.missing{border-style:dashed}.cal-day.future{opacity:.35;cursor:default}.cal-day:hover:not(.future){border-color:var(--gold)}@media(max-width:620px){.auth-card{padding:23px}.calendar-head{align-items:flex-start;gap:8px;flex-direction:column}.history-calendar{gap:4px}.cal-day{min-height:48px;padding:5px}.cal-day .day-status{font-size:8px}}

.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* WhatsApp daily report composer */
.wa-layout{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.5fr);gap:15px;align-items:start}.wa-controls,.wa-preview-panel{margin:0}.wa-date-label{display:grid;gap:8px;color:#c4cdd1;font-size:12px}.wa-date-label input{width:100%;min-height:46px;background:#fffaf3;border:1px solid #d8c5ab;border-radius:9px;padding:11px 13px;color:#17283b;color-scheme:light;accent-color:#a51e35;font:inherit;box-shadow:0 2px 7px rgba(16,36,58,.05)}.wa-date-label input:focus{outline:none;border-color:#c9953e;box-shadow:0 0 0 3px rgba(201,149,62,.18)}.wa-date-label input::-webkit-calendar-picker-indicator{opacity:.85;cursor:pointer;filter:none}.wa-preview{white-space:pre-wrap;overflow-wrap:anywhere;background:#101a22;border:1px solid #33434f;border-radius:9px;padding:18px;color:#e8edf0;font:13px/1.65 system-ui,sans-serif;min-height:420px;max-height:68vh;overflow:auto;margin:0}.wa-actions{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.wa-actions .field-hint{margin:0}.button-row button:disabled,.wa-actions button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:760px){.wa-layout{grid-template-columns:1fr}.wa-preview{min-height:350px;max-height:none}.wa-actions button{width:100%}}


/* JAPANISH DSR v2.3 — Japanese rooftop editorial theme */
:root{--bg:#f7f1e8;--panel:#fffaf3;--panel2:#f2e8da;--line:#e5d7c5;--text:#17283b;--muted:#667383;--gold:#c9953e;--gold2:#e5b85d;--green:#3f806a;--red:#a51e35;--shadow:0 8px 24px rgba(37,43,52,.08)}
body{background:radial-gradient(ellipse at 85% 0%,#f0e4d2 0,transparent 34%),var(--bg);color:var(--text)}
.shell{max-width:1500px;padding:0 30px}
.topbar{border-bottom:1px solid var(--line);height:92px}
.brand{gap:14px}.brand-app-icon{width:58px;height:58px;border-radius:15px;object-fit:cover;box-shadow:0 3px 10px #10243a20;border:1px solid #d6b16e}
.brand-name{color:#10243a;font-family:Georgia,serif;letter-spacing:3px;font-size:19px}.brand-name span{color:var(--red)}
.brand-sub,.eyebrow,.kpi-label,.period-label{color:#8b6b3e}
.tabs{border-bottom:1px solid var(--line);gap:8px;padding-top:14px}
.tab{color:#586779;border-radius:9px 9px 0 0;padding:13px 17px}.tab.active{color:var(--red);border-color:var(--red);background:#a51e350b;font-weight:800}
.page-heading h1{font-family:Georgia,'Times New Roman',serif;color:#12243a;font-size:32px}
.eyebrow{color:#a51e35;font-weight:800}
.muted{color:#687586}
.primary{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 3px 8px #a51e3520}.primary:hover{background:#87172b;border-color:#87172b}
.secondary,.file-button{background:#fffaf3;border-color:#ddcdb8;color:#23364b}.secondary:hover,.file-button:hover{border-color:var(--gold);background:#fff4e2}
.ghost{border-color:#d9c9b4;color:#41536a}.ghost:hover{border-color:var(--red);color:var(--red)}
.kpi,.panel{background:rgba(255,250,243,.96);border:1px solid #e7d9c7;box-shadow:var(--shadow);border-radius:15px}
.kpi{min-height:135px}.kpi.featured{background:linear-gradient(135deg,#10243a,#1e3a55);border-color:#294963;color:#fff}.kpi.featured .kpi-label,.kpi.featured .kpi-foot{color:#d6e0ea}.featured .kpi-value{color:#f1c56f}
.kpi-value{color:#17283b}.kpi-label{letter-spacing:1.1px}
.panel h2{color:#17283b}.mix-track{background:#eee3d5}.mix-fill{background:#173b5b}.mix-row:nth-child(2) .mix-fill{background:#c9953e}.mix-row:nth-child(3) .mix-fill{background:#a51e35}
.latest-cell{background:#f4eadc}.latest-cell strong{color:#17283b}
th{color:#8b6b3e;border-bottom-color:var(--line)}td{border-bottom-color:#e8ded1}.source-tag{background:#efe3d1;color:#71532c}
.fields label,.full-label{color:#4d5d70}.fields input,.filters input,.full-label textarea,.auth-card input{background:#fffdf9;border:1px solid #ddcfbd;color:#17283b}.fields input:focus,.filters input:focus,textarea:focus{border-color:#c9953e;box-shadow:0 0 0 3px #c9953e20}
input[readonly]{color:#8d5d15;background:#f8edda}.calc-strip{border-color:var(--line);color:#667383}.calc-strip strong{color:#9a6a1f}.field-hint{color:#738092}.auto-tag{color:#a51e35}
.db-status{background:#edf4ef;color:#34735d}.warning{background:#fff3df;border-color:#e7c98e;color:#7c5b20}
.toast{background:#10243a;color:#fff;border:1px solid #c9953e}
footer{border-color:var(--line);color:#788393}footer span{color:var(--red)}
.auth-gate{background:rgba(11,27,43,.94);backdrop-filter:blur(10px)}.auth-card{background:#fffaf3;border-color:#e5d2b8;color:#17283b}.auth-card h1{font-family:Georgia,serif;color:#10243a}.auth-card label{color:#4d5d70}.auth-app-icon{width:92px;height:92px;border-radius:22px;border:2px solid #d4a74e;box-shadow:0 8px 20px #10243a24}
.calendar-legend .has-report{background:#3f806a}.cal-day{background:#f6eee4;color:#17283b;border-color:#e5d7c5}.cal-day.reported{background:#e7f1eb;border-color:#8db7a0}.cal-day.reported .day-status{color:#34735d}.cal-day.missing{background:#fffaf3}.cal-day:hover:not(.future){border-color:#c9953e}
.wa-preview{background:#f5ecdf!important;color:#17283b!important;border:1px solid #e2d2bd!important;border-radius:12px!important}
@media(max-width:620px){.shell{padding:0 12px}.topbar{height:72px}.brand-app-icon{width:45px;height:45px;border-radius:12px}.brand-name{font-size:15px}.page-heading h1{font-size:27px}.kpi.featured{background:linear-gradient(135deg,#10243a,#1e3a55)}}

/* v2.4 WhatsApp date picker visibility */
.wa-date-label{color:#34475d}.wa-controls .field-hint{color:#718093}.wa-preview{background:#fffaf3!important;color:#17283b!important}

/* v2.5 — live dashboard charts, styled to match the Japanese rooftop reference */
.chart-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.95fr);gap:15px;margin:16px 0}
.chart-panel{margin:0;min-height:330px;padding:20px}
.sales-trend-chart{width:100%;min-height:245px;overflow:hidden}
.sales-trend-chart svg{display:block;width:100%;height:auto;min-height:235px}
.chart-legend{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;margin-top:4px;color:#526174;font-size:12px}
.chart-legend span{display:inline-flex;align-items:center;gap:7px}.chart-legend i{display:inline-block;width:11px;height:11px;border-radius:3px}.legend-food{background:#173b5b}.legend-beverage{background:#c9953e}.legend-net{height:3px!important;width:18px!important;background:#a51e35;border-radius:3px!important}
.donut-layout{display:flex;align-items:center;justify-content:center;gap:22px;min-height:245px;flex-wrap:wrap}
.donut-chart{width:190px;height:190px;border-radius:50%;position:relative;flex:0 0 auto}
.donut-chart:after{content:"";position:absolute;inset:28%;background:#fffaf3;border-radius:50%;box-shadow:inset 0 0 0 1px #eadcc9}
.donut-center{position:absolute;z-index:1;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#17283b;font-weight:800;font-size:19px}.donut-center small{font-size:11px;font-weight:500;color:#687586}
.donut-legend{min-width:155px;display:grid;gap:13px}.donut-legend-row{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;font-size:12px;color:#33465a}.donut-legend-row i{width:11px;height:11px;border-radius:3px}.donut-legend-row strong{font-size:12px;color:#17283b}
@media(max-width:850px){.chart-grid{grid-template-columns:1fr}.chart-panel{min-height:unset}.donut-layout{padding:10px 0}}
@media(max-width:480px){.chart-panel{padding:14px}.chart-legend{gap:12px;font-size:10px}.donut-chart{width:160px;height:160px}.donut-layout{gap:14px}}

/* v2.6 — keep chart text legible on phones (scroll instead of shrinking) */
.sales-trend-chart{overflow-x:auto;-webkit-overflow-scrolling:touch}.sales-trend-chart svg{min-width:560px}
