:root{color:#172522;font-synthesis:none;text-rendering:optimizelegibility;--teal-950:#073b38;--teal-800:#0f5b55;--teal-700:#177067;--teal-100:#d9eee9;--ink:#172522;--muted:#667873;--line:#dce7e4;--surface:#fff;--warning:#bb6b17;--danger:#b63c37;--shadow:0 10px 28px #14403a14;background:#eef4f2;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{background:#eef4f2}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{background:#f7faf9;max-width:760px;min-height:100vh;margin:0 auto}.topbar{z-index:10;height:72px;padding:max(12px, env(safe-area-inset-top)) 20px 10px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7faf9ed;border-bottom:1px solid #dce7e4cc;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.brand-seal{color:#fff;background:var(--teal-800);border-radius:12px;place-items:center;width:38px;height:38px;font-family:serif;font-size:21px;font-weight:800;display:grid;box-shadow:0 6px 16px #0f5b5538}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.02em;font-size:15px}.brand small{color:var(--muted);margin-top:2px;font-size:12px}.avatar-button{width:38px;height:38px;color:var(--teal-800);background:#ecf6f3;border:1px solid #c9dbd6;border-radius:50%;font-weight:750}.main-content{min-height:calc(100vh - 146px);padding:20px 16px 106px}.page-stack{gap:18px;display:grid}.welcome-row{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.eyebrow{color:var(--teal-700);letter-spacing:.08em;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:750}h1,h2,p{margin-top:0}h1{letter-spacing:-.025em;margin-bottom:0;font-size:clamp(23px,6vw,30px);line-height:1.25}h2{margin-bottom:0;font-size:19px}.close-status{color:#805011;background:#fff5df;border:1px solid #f2dbaf;border-radius:999px;flex:none;align-items:center;gap:6px;padding:7px 9px;font-size:12px;font-weight:700;display:inline-flex}.close-status i{background:#db8b24;border-radius:50%;width:7px;height:7px}.metric-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.metric-card{background:var(--surface);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);border-radius:17px;padding:15px}.metric-card span,.metric-card small,.metric-card strong{display:block}.metric-card span{color:var(--muted);font-size:13px;font-weight:650}.metric-card strong{letter-spacing:-.035em;white-space:nowrap;margin:7px 0 4px;font-size:clamp(20px,5vw,27px)}.metric-card small{color:#7d8c88;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.metric-card--primary{color:#fff;background:linear-gradient(145deg, var(--teal-800), var(--teal-950));border:0;box-shadow:0 13px 30px #073b3833}.metric-card--primary span,.metric-card--primary small{color:#cfe8e3}.metric-card--wide{grid-column:1/-1;grid-template-columns:1fr auto;align-items:end;display:grid}.metric-card--wide span{grid-column:1/-1}.metric-card--wide small{padding-bottom:4px}.primary-action{color:#fff;background:var(--teal-800);border-radius:19px;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;min-height:74px;padding:13px 16px;display:grid;box-shadow:0 12px 26px #0f5b5533}.primary-action .action-mark{width:43px;height:43px;color:var(--teal-950);background:#d9eee9;border-radius:14px;place-items:center;font-size:27px;font-weight:400;display:grid}.primary-action strong,.primary-action small{display:block}.primary-action strong{font-size:17px}.primary-action small{color:#d1e8e3;margin-top:4px;font-size:12px}.primary-action b{font-size:27px;font-weight:400}.section-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:17px}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.legend{color:var(--muted);font-size:12px}.dot{border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.dot--warning{background:#dd8a27}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.room-card{background:#fbfdfc;border:1px solid #dce7e4;border-radius:15px;grid-template-columns:1fr auto;gap:10px;padding:13px;display:grid}.room-card>div:first-child strong,.room-card>div:first-child span{display:block}.room-card>div:first-child strong{font-size:16px}.room-card>div:first-child span{color:var(--muted);margin-top:2px;font-size:12px}.room-card>b{color:var(--teal-800);font-size:21px}.room-card>b small{color:var(--muted);font-size:11px}.room-card--warning{background:#fffaf0;border-color:#efd4a7}.room-card--warning>b,.room-card--warning>div:first-child span{color:var(--warning)}.room-card--blocked{background:#fff6f5;border-color:#efc4c1}.room-card--blocked>b,.room-card--blocked>div:first-child span{color:var(--danger)}.progress{background:#e7efed;border-radius:99px;grid-column:1/-1;height:5px;overflow:hidden}.progress i{background:var(--teal-700);border-radius:inherit;height:100%;display:block}.room-card--warning .progress i{background:#db8b24}.room-card--blocked .progress i{background:var(--danger)}.bottom-nav{z-index:20;max-width:760px;min-height:70px;padding:8px 8px max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;justify-content:space-around;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 26px #14403a12}.nav-item{color:#758580;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:56px;min-height:48px;font-size:12px;font-weight:650;display:flex}.nav-item--active{color:var(--teal-800);background:#e8f3f0}.placeholder{border:1px solid var(--line);background:#fff;border-radius:20px;padding:28px 20px}.placeholder p:last-child{color:var(--muted);margin:12px 0 0;font-size:15px}.login-page{background:radial-gradient(circle at top,#d8ece8,#eef4f2 42%,#f7faf9);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:24px;width:min(100%,410px);padding:30px;box-shadow:0 20px 60px #073b3821}.login-seal{margin-bottom:22px}.login-card h1{margin-bottom:24px}.login-card form{gap:16px;display:grid}.login-card label{color:#344944;gap:7px;font-size:14px;font-weight:700;display:grid}.login-card input{min-height:48px;color:var(--ink);background:#fbfdfc;border:1px solid #cbdad6;border-radius:12px;outline:none;padding:11px 13px}.login-card input:focus{border-color:var(--teal-700);box-shadow:0 0 0 3px #1770671f}.form-error{color:var(--danger);margin:-4px 0 0;font-size:14px}.error-banner,.offline-notice{border-radius:12px;margin:0;padding:11px 13px;font-size:13px;line-height:1.5}.error-banner{color:#8c2925;background:#fff1f0;border:1px solid #efc4c1}.offline-notice{color:#805011;background:#fff6e5;border:1px solid #efd9af}.form-submit{color:#fff;background:var(--teal-800);border:0;border-radius:13px;min-height:50px;font-size:16px;font-weight:750}.form-submit:disabled{opacity:.65}.page-heading>p:last-child{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.55}.register-actions{gap:11px;display:grid}.register-action{border:1px solid var(--line);min-height:78px;box-shadow:var(--shadow);background:#fff;border-radius:18px;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;padding:14px 15px;display:grid}.register-action__icon{width:46px;height:46px;color:var(--teal-800);background:#e6f2ef;border-radius:14px;place-items:center;display:grid}.register-action strong,.register-action small{display:block}.register-action strong{margin-bottom:5px;font-size:16px}.register-action small{color:var(--muted);font-size:12px;line-height:1.4}.register-action--primary{color:#fff;background:linear-gradient(145deg, var(--teal-800), var(--teal-950));border:0}.register-action--primary small{color:#cee7e2}.register-action--primary .register-action__icon{color:var(--teal-950);background:#d8eee9}.register-action--card{background:#f5fbf9;border-color:#c9ddd8}.business-form{gap:16px;display:grid}.field{color:#344944;gap:7px;font-size:13px;font-weight:750;display:grid}.field input,.field select,.field textarea{width:100%;min-height:48px;color:var(--ink);background:#fbfdfc;border:1px solid #cbdad6;border-radius:12px;outline:none;padding:11px 12px}.field textarea{resize:vertical;min-height:82px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal-700);box-shadow:0 0 0 3px #1770671c}.form-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.accounting-note{color:#325b55;background:#edf7f4;border:1px solid #d2e9e4;border-radius:14px;gap:4px;padding:14px;display:grid}.accounting-note strong{font-size:16px}.accounting-note span{color:#58746f;font-size:12px}.form-message{color:var(--teal-800);margin:-4px 0 0;font-size:13px}.setup-notice{color:#805011;background:#fff6e5;border:1px solid #efd9af;border-radius:12px;margin:0 0 14px;padding:11px 13px;font-size:12px;line-height:1.5}.detail-list{gap:14px;display:grid}.detail-list>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding-bottom:12px;display:flex}.detail-list>div:last-child{border-bottom:0;padding-bottom:0}.detail-list span{color:var(--muted);font-size:13px}.segment-field,.room-field{border:0;min-width:0;margin:0;padding:0}.segment-field legend,.room-field legend{color:#344944;margin-bottom:8px;font-size:13px;font-weight:750}.segment-field>div{background:#edf3f1;border-radius:13px;gap:7px;padding:4px;display:flex}.segment-field button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex:1;padding:7px;font-size:13px;font-weight:700}.segment-field button.selected{color:var(--teal-800);background:#fff;box-shadow:0 3px 10px #073b3814}.room-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.room-choice{text-align:left;min-height:65px;color:var(--ink);border:1px solid var(--line);background:#fbfdfc;border-radius:13px;gap:3px;padding:11px;display:grid;position:relative;overflow:hidden}.room-choice strong{font-size:15px}.room-choice span{color:var(--muted);font-size:11px}.room-choice i{background:var(--teal-700);height:4px;position:absolute;bottom:0;left:0;right:0}.room-choice--warning{background:#fffaf0;border-color:#ebce9e}.room-choice--warning i{background:#db8b24}.room-choice--blocked{opacity:.62;background:#fff5f4;border-color:#e8c5c2}.room-choice--blocked i{background:var(--danger)}.room-choice--selected{border-color:var(--teal-700);box-shadow:0 0 0 3px #1770671f}.muted-copy{color:var(--muted);margin:12px 0 0;line-height:1.6}.rule-list{gap:12px;display:grid}.rule-list article{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding-bottom:12px;display:flex}.rule-list article:last-child{border-bottom:0;padding-bottom:0}.rule-list strong,.rule-list span{display:block}.rule-list span{color:var(--muted);margin-top:4px;font-size:12px}.rule-list b{color:var(--teal-800);white-space:nowrap}.status-tabs{background:#e8efed;border-radius:13px;gap:6px;padding:4px;display:flex}.status-tabs button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex:1;font-size:13px;font-weight:700}.status-tabs button.active{color:var(--teal-800);background:#fff;box-shadow:0 3px 10px #073b3814}.ledger-list{gap:12px;display:grid}.ledger-list article{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding-bottom:12px;display:flex}.ledger-list article:last-child{border-bottom:0;padding-bottom:0}.ledger-list strong,.ledger-list span{display:block}.ledger-list span,.empty-state span{color:var(--muted);margin-top:4px;font-size:12px}.ledger-list b{color:var(--teal-800);white-space:nowrap}.ledger-actions{justify-items:end;gap:7px;display:grid}.ledger-actions button{color:#fff;background:var(--teal-800);border:0;border-radius:9px;min-height:34px;padding:6px 10px;font-size:12px;font-weight:700}.action-link{place-items:center;display:grid}.empty-state{color:var(--muted);text-align:center;justify-items:center;gap:4px;padding:24px 8px;display:grid}.secondary-action{min-height:50px;color:var(--teal-800);background:#fff;border:1px solid #b9d1cc;border-radius:13px;font-weight:750}.range-controls{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.range-controls button,.range-controls label{border:1px solid var(--line);min-height:42px;color:var(--teal-800);background:#fff;border-radius:11px;padding:9px 11px;font-size:12px;font-weight:700}.range-controls label{align-items:center;gap:6px;display:flex}.range-controls input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0}.chart-card header{margin-bottom:12px}.chart-box{width:100%;height:230px}.chart-box--pie{height:190px}.chart-legend{color:var(--muted);align-items:center;gap:6px;margin:8px 0 0;font-size:12px;display:flex}.chart-legend i,.numeric-legend i{border-radius:3px;width:9px;height:9px;display:inline-block}.legend-revenue{background:#177067}.legend-profit{background:#9bc9bf;margin-left:9px}.numeric-legend{gap:7px;margin:0;padding:0;list-style:none;display:grid}.numeric-legend li{color:var(--muted);grid-template-columns:10px 1fr auto;align-items:center;gap:7px;font-size:12px;display:grid}.numeric-legend b{color:var(--ink)}.summary-card ol{color:#4e625d;gap:8px;margin:13px 0 0;padding-left:20px;font-size:14px;line-height:1.55;display:grid}.chart-grid{gap:14px;display:grid}.settings-list{gap:12px;display:grid}.settings-list article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.settings-list article:last-child{border-bottom:0;padding-bottom:0}.settings-list strong,.settings-list span{display:block}.settings-list span{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px;line-height:1.55}.settings-list button{min-height:38px;color:var(--danger);background:#fff6f5;border:1px solid #efc4c1;border-radius:10px;padding:8px 12px;font-weight:700}@media (width>=640px){.chart-grid{grid-template-columns:1fr 1fr}.range-controls{grid-template-columns:repeat(4,1fr)}.main-content{padding-left:24px;padding-right:24px}.metric-grid{grid-template-columns:repeat(4,1fr)}.metric-card--wide{grid-column:span 2}.room-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
