@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-full{height:100%}.min-h-full{min-height:100%}.resize{resize:both}.flex-col{flex-direction:column}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--app-viewport-height:100dvh;--app-keyboard-inset:0px;--ink:#18221d;--muted:#69756f;--line:#dfe6e1;--paper:#f4f7f4;--brand:#176b4a;--brand-dark:#0c4c33;--lime:#dff06d}*{box-sizing:border-box}html,body{width:100%;height:var(--app-viewport-height);min-height:0;overflow:hidden}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Apple SD Gothic Neo,sans-serif}body>main{height:var(--app-viewport-height);min-height:0;max-height:var(--app-viewport-height);overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{background:radial-gradient(circle at 100% 0,#dff06d 0,#0000 32%),#0e4f36;place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:#fff;border-radius:28px;width:min(100%,420px);padding:34px 28px;box-shadow:0 24px 80px #062c1f66}.auth-shell{place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-card{border:1px solid var(--line);background:#fff;border-radius:24px;width:min(100%,440px);padding:32px 28px;box-shadow:0 18px 55px #183c2b14}.auth-card h1{letter-spacing:-.04em;margin-bottom:8px;font-size:26px}@media (max-width:480px){.auth-shell{place-items:start center;padding:16px}.auth-card{border-radius:20px;padding:26px 20px}}.brand-mark{background:var(--brand);width:50px;height:50px;color:var(--lime);border-radius:16px;place-items:center;margin-bottom:28px;font-size:26px;font-weight:900;display:grid}.eyebrow{color:var(--brand);letter-spacing:.14em;margin:0 0 7px;font-size:11px;font-weight:900}h1,h2,p{margin-top:0}.login-card h1{letter-spacing:-.04em;margin-bottom:10px;font-size:28px}.login-business-info{color:#718078;text-align:left;word-break:keep-all;border-top:1px solid #e3eae5;margin-top:24px;padding-top:18px;font-size:11px;line-height:1.65}.login-business-info p{margin-bottom:2px}.login-business-info address{font-style:normal}.login-policy-links{text-align:center;flex-wrap:wrap;justify-content:center;gap:4px 7px;margin-top:12px;display:flex}.login-policy-links a{color:#52675e;text-underline-offset:3px;font-weight:700}.login-policy-links span{color:#b4beb8}.muted{color:var(--muted);line-height:1.6}.stack-form{gap:16px;margin-top:26px;display:grid}.stack-form label{gap:8px;font-size:13px;font-weight:800;display:grid}.stack-form input,.stack-form select,.stack-form textarea,.filter-row input,.filter-row select{border:1px solid var(--line);background:#fff;border-radius:13px;outline:none;width:100%;height:48px;padding:0 14px}.stack-form textarea{resize:vertical;height:auto;min-height:92px;padding:13px 14px;line-height:1.6}.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.filter-row input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b4a18}.primary-button{background:var(--brand);color:#fff;border:0;border-radius:14px;min-height:50px;padding:0 20px;font-weight:900;box-shadow:0 8px 18px #176b4a33}.primary-button:disabled{opacity:.55}.error-text{color:#b42318;font-size:13px}.success-text{color:var(--brand-dark);font-size:13px;line-height:1.6}.auth-links{justify-content:center;gap:18px;margin-top:20px;font-size:13px;display:flex}.auth-links a{color:var(--brand);font-weight:800;text-decoration:none}.signup-shell{padding-block:40px}.signup-card{max-width:560px}.signup-description{color:var(--muted);margin:-4px 0 20px;font-size:13px;line-height:1.65}.file-field input[type=file]{background:#f8faf8;height:auto;padding:12px}.file-field small{color:var(--muted);font-size:10px}.admin-application-shell{max-width:820px}.application-filters{background:#edf2ee;border-radius:14px;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:14px;padding:5px;display:grid}.application-filters button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:10px;font-weight:800}.application-filters button.active{color:var(--brand);background:#fff;box-shadow:0 3px 9px #173f2b16}.application-list{gap:12px;display:grid}.application-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:20px}.application-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.application-heading span,.application-heading p{color:var(--muted);font-size:12px}.application-heading h2{margin:4px 0;font-size:20px}.application-card dl{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;display:grid}.application-card dl div{background:#f6f8f6;border-radius:11px;padding:11px}.application-card dt{color:var(--muted);font-size:10px}.application-card dd{margin:5px 0 0;font-size:12px;font-weight:800}.application-files,.application-actions{gap:8px;display:flex}.application-files button{border:1px solid var(--line);min-height:40px;color:var(--brand);background:#fff;border-radius:11px;flex:1;font-weight:800}.application-actions{justify-content:flex-end;margin-top:16px}.application-reason{color:#9f3026;background:#fff2ef;border-radius:10px;padding:10px;font-size:12px}@media (max-width:600px){.application-card dl{grid-template-columns:1fr}.application-actions button{flex:1}}.app-shell{width:min(100%,1040px);min-height:var(--app-viewport-height);margin:auto;padding:22px 18px 100px}.topbar{justify-content:space-between;align-items:center;gap:13px;margin-bottom:22px;display:flex}.topbar-title{min-width:0}.service-brand{align-items:center;gap:9px;margin-bottom:7px;display:flex}.service-brand .eyebrow{letter-spacing:.12em;margin:0}.service-brand .eyebrow span{color:#86a495}.topbar h1{margin:0;font-size:22px}.ghost-button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:12px;padding:10px 13px}.link-button{align-items:center;text-decoration:none;display:inline-flex}.topbar-icon-actions{flex:none;gap:7px;display:flex}.header-icon-button{border:1px solid var(--line);color:#44534c;background:#fff;border-radius:14px;place-items:center;width:43px;height:43px;padding:0;display:grid;position:relative;box-shadow:0 4px 14px #173f2b12}.header-icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.notification-badge{color:#fff;background:#e43f38;border:2px solid #f4f7f5;border-radius:10px;min-width:18px;height:18px;padding:0 5px;font-size:9px;font-weight:900;line-height:14px;position:absolute;top:-5px;right:-5px}.menu-modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10281d70;place-items:center;padding:18px;animation:.18s ease-out menu-fade-in;display:grid;position:fixed;inset:0}.account-menu-modal,.notification-modal{background:#f9fbf9;border:1px solid #ffffff80;border-radius:24px;width:min(100%,410px);max-height:min(720px,100dvh - 36px);animation:.2s ease-out menu-pop-in;overflow:hidden;box-shadow:0 24px 70px #10281d45}.account-menu-modal{padding:20px}.menu-modal-head,.notification-modal-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.menu-modal-head>div{gap:3px;display:grid}.menu-modal-head strong{font-size:20px}.menu-modal-head span{color:var(--brand);font-size:11px;font-weight:800}.menu-modal-head>button,.notification-modal-head>div:last-child button:last-child{border:1px solid var(--line);width:38px;height:38px;color:var(--muted);background:#fff;border-radius:12px;padding:0;font-size:23px}.account-menu-links{gap:8px;margin:20px 0;display:grid}.account-menu-links a,.account-menu-links button{border:1px solid var(--line);color:#304038;min-height:62px;font:inherit;text-align:left;background:#fff;border-radius:14px;gap:4px;padding:13px 15px;font-size:14px;font-weight:900;text-decoration:none;display:grid}.account-menu-links a span,.account-menu-links button span{color:var(--muted);font-size:11px;font-weight:600}.account-menu-links a:hover,.account-menu-links button:hover{color:var(--brand);background:#f0f7f2;border-color:#9bc6ad}.account-menu-logout{color:#b42318;background:#fff;border:1px solid #efc7c2;border-radius:12px;width:100%;min-height:46px;font-weight:800}.notification-modal{flex-direction:column;display:flex}.permission-modal{text-align:center;background:#fff;border:1px solid #ffffff80;border-radius:24px;gap:22px;width:min(100%,380px);padding:28px 24px 24px;animation:.2s ease-out menu-pop-in;display:grid;box-shadow:0 24px 70px #10281d45}.permission-modal-icon{color:#a85d00;background:#fff3dc;border-radius:20px;place-items:center;width:64px;height:64px;margin:0 auto;display:grid}.permission-modal-icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:32px;height:32px}.permission-modal h2{letter-spacing:-.04em;margin:0 0 9px;font-size:21px}.permission-modal p:not(.eyebrow){color:var(--muted);word-break:keep-all;margin:0;font-size:13px;line-height:1.65}.permission-modal .primary-button{width:100%}.notification-modal-head{border-bottom:1px solid var(--line);padding:20px}.notification-modal-head h2{margin:2px 0 0;font-size:21px}.notification-modal-head>div:last-child{align-items:center;gap:7px;display:flex}.notification-modal-head>div:last-child button:first-child:not(:last-child){min-height:36px;color:var(--brand);background:0 0;border:0;padding:0 9px;font-size:11px;font-weight:900}.notification-list{padding:8px 12px 16px;display:grid;overflow-y:auto}.notification-list .empty{margin:12px 0;padding:34px 12px}.notification-item{border:0;border-bottom:1px solid var(--line);width:100%;color:inherit;text-align:left;background:0 0;grid-template-columns:8px 1fr;gap:10px;padding:14px 8px;display:grid}.notification-item:hover{background:#f0f6f2}.notification-item.read{opacity:.58}.notification-dot{background:0 0;border-radius:50%;width:7px;height:7px;margin-top:5px}.notification-item.unread .notification-dot{background:#e43f38;box-shadow:0 0 0 3px #ffe9e7}.notification-item>span:last-child{gap:4px;display:grid}.notification-item strong{font-size:13px}.notification-item small{color:var(--muted);font-size:11px;line-height:1.5}.notification-item time{color:#99a29d;font-size:9px}@keyframes menu-fade-in{0%{opacity:0}}@keyframes menu-pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.account-shell{max-width:640px}.account-panel{margin-bottom:14px}.account-panel h2{margin-bottom:6px;font-size:19px}.danger-panel{border-color:#efc7c2}.danger-button{color:#b42318;border-color:#efc7c2;font-weight:800}.team-shell{max-width:860px}.team-invite-panel,.team-section{margin-bottom:18px}.team-invite-panel{background:linear-gradient(145deg,#fff 25%,#f1f8f4);border:1px solid #cfe1d7;padding:24px;box-shadow:0 10px 28px #173f2b0d}.team-invite-panel h2,.team-section h2{letter-spacing:-.03em;margin:0 0 6px;font-size:21px}.team-invite-heading{align-items:center;gap:13px;display:flex}.team-invite-heading p{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.team-invite-icon{width:48px;height:48px;color:var(--brand);background:#dff0e6;border-radius:16px;flex:none;place-items:center;display:grid}.team-invite-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.team-invite-form{grid-template-columns:minmax(0,1fr) 210px;align-items:end;gap:13px 12px;margin-top:22px;display:grid}.team-invite-form label{color:#34473e;gap:9px;font-size:15px;font-weight:900;display:grid}.team-invite-form input,.team-invite-form select{width:100%;height:56px;color:var(--ink);background:#fff;border:1px solid #cbd8d0;border-radius:15px;outline:none;padding:0 16px;font-size:16px;font-weight:700;transition:border-color .16s,box-shadow .16s}.team-invite-form input::placeholder{color:#9aa59f;font-weight:500}.team-invite-form input:focus,.team-invite-form select:focus{border-color:var(--brand);box-shadow:0 0 0 4px #176b4a18}.team-role-description{min-height:20px;color:var(--muted);margin:-2px 0 0;font-size:13px;line-height:1.55}.team-invite-submit{grid-area:2/2;min-height:52px;font-size:15px}.team-invite-expiry{color:#7b8981;margin:14px 0 0;font-size:12px}.team-section{padding:22px 24px}.team-section-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.team-section-heading span{min-width:38px;color:var(--brand);text-align:center;background:#edf4ef;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900}.team-card{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:18px 0;display:flex}.team-card.inactive{opacity:.55}.team-card-info{gap:7px;min-width:0;display:grid}.team-member-name{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.team-card-info strong{overflow-wrap:anywhere;font-size:16px}.team-member-name small,.team-member-name em{border-radius:999px;padding:4px 7px;font-size:10px;font-style:normal;font-weight:900}.team-member-name small{color:var(--brand);background:#eaf3ed}.team-member-name em.active{color:#177047;background:#e8f5ed}.team-member-name em.inactive{color:#747d78;background:#f0f1f0}.team-card-info>span{color:#53635b;text-overflow:ellipsis;font-size:14px;overflow:hidden}.team-card-info>p{color:#849088;margin:0;font-size:12px;line-height:1.45}.team-card-actions{flex-shrink:0;align-items:center;gap:7px;display:flex}.team-card-actions select{border:1px solid var(--line);min-width:140px;height:44px;color:var(--ink);background:#fff;border-radius:12px;padding:0 12px;font-size:14px;font-weight:800}.team-card-actions .ghost-button{min-height:44px;font-size:13px;font-weight:800}.team-delete-button{color:#bb3b32;cursor:pointer;background:#fff7f6;border:1px solid #efc9c5;border-radius:12px;place-items:center;width:40px;height:40px;padding:0;display:grid}.team-delete-button:hover{background:#ffefed;border-color:#df8f87}.team-delete-button svg,.team-delete-modal-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.team-delete-backdrop{z-index:120;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#10281d70;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.team-delete-modal{background:#fff;border:1px solid #ffffff80;border-radius:24px;gap:18px;width:min(100%,430px);padding:24px;display:grid;box-shadow:0 24px 70px #10281d45}.team-delete-modal-icon{color:#ba3c33;background:#fff0ee;border-radius:16px;place-items:center;width:48px;height:48px;display:grid}.team-delete-modal h2{margin:5px 0 8px;font-size:20px}.team-delete-modal p{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.team-delete-modal p strong{color:var(--ink)}.team-delete-modal-actions{grid-template-columns:1fr 1fr;gap:9px;display:grid}.team-delete-modal-actions button{border-radius:13px;min-height:44px}.team-delete-modal-actions .danger-button{color:#fff;background:#c94b42;border:1px solid #c94b42;font-weight:800}.invitation-summary{background:#f3f7f4;border-radius:14px;gap:7px;margin:18px 0;padding:16px;display:grid}.invitation-summary span{color:var(--muted);font-size:13px}.invitation-summary em{color:var(--brand);font-size:12px;font-style:normal;font-weight:800}.invitation-success{text-align:center;gap:22px;padding-top:18px;display:grid}.invitation-success-icon{width:68px;height:68px;color:var(--brand);background:#e4f5ec;border-radius:22px;place-items:center;margin:0 auto;display:grid}.invitation-success-icon svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:36px;height:36px}.invitation-success h2{letter-spacing:-.04em;margin-bottom:9px;font-size:23px}.invitation-success p{color:var(--muted);margin-bottom:0;line-height:1.6}.invitation-success .eyebrow{color:var(--brand);margin-bottom:8px}.invitation-success-guide{text-align:left;background:#f5f9f6;border:1px solid #dbe9e1;border-radius:15px;gap:5px;padding:16px;display:grid}.invitation-success-guide strong{font-size:14px}.invitation-success-guide span{color:var(--muted);font-size:12px;line-height:1.5}.invitation-login-link{width:100%}@media (max-width:680px){.team-shell{padding-inline:14px}.team-invite-panel,.team-section{border-radius:20px;padding:20px 17px}.team-invite-heading{align-items:flex-start}.team-invite-heading p{font-size:13px}.team-invite-form{grid-template-columns:1fr}.team-invite-submit{grid-area:auto/1;width:100%}.team-role-description{margin-top:-5px}.team-card{flex-direction:column;align-items:stretch}.team-card-actions{grid-template-columns:1fr auto auto;display:grid}.team-card-actions select{grid-column:1/-1;width:100%}.team-card-actions button{width:100%}.team-invitation-actions{grid-template-columns:1fr 1fr}}.summary-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.summary-grid article,.summary-grid>button{box-sizing:border-box;border:1px solid var(--line);min-width:0;min-height:112px;color:var(--ink);font:inherit;text-align:left;vertical-align:top;background:#fff;border-radius:18px;padding:17px 15px;line-height:1.2;display:block;position:relative}.summary-grid>button{cursor:pointer;transition:border-color .16s,transform .16s,box-shadow .16s}.summary-grid>button:hover{border-color:#91b5a1;transform:translateY(-1px);box-shadow:0 8px 22px #173f2b14}.summary-grid span{height:18px;color:var(--muted);white-space:nowrap;margin-bottom:8px;font-size:12px;font-weight:400;line-height:18px;display:block}.summary-grid strong{font-size:27px;line-height:33px}.summary-grid small{color:var(--muted);line-height:1.25}.summary-metric{white-space:nowrap;align-items:baseline;gap:3px;min-width:0;min-height:33px;display:flex}.summary-metric small{font-size:10px}.monthly-revenue-card{width:100%;min-height:62px;color:var(--ink);text-align:right;cursor:pointer;background:linear-gradient(135deg,#edf8f1,#fff);border:1px solid #afd0bb;border-radius:16px;justify-content:flex-end;align-items:center;gap:12px;margin:-4px 0 14px;padding:11px 15px;display:flex;box-shadow:0 6px 18px #1f623f12}.monthly-revenue-card:hover{border-color:#78aa8b;transform:translateY(-1px)}.monthly-revenue-card>span{text-align:left;align-items:baseline;gap:10px;min-width:0;display:flex}.monthly-revenue-card small{color:var(--muted);flex:none;font-size:10px;font-weight:800}.monthly-revenue-card strong{color:var(--brand);text-overflow:ellipsis;white-space:nowrap;font-size:20px;overflow:hidden}.monthly-revenue-card i{color:var(--muted);white-space:nowrap;background:#eef1ef;border-radius:999px;flex:none;padding:5px 8px;font-size:9px;font-style:normal;font-weight:900}.monthly-revenue-card i.up{color:#217545;background:#dff3e6}.monthly-revenue-card i.down{color:#b64034;background:#fde5e2}.summary-grid em{color:var(--brand);font-size:10px;font-style:normal;font-weight:800;position:absolute;bottom:13px;right:13px}.dashboard-period-sheet{max-width:620px}.dashboard-period-summary{color:var(--muted);margin:4px 0 14px;font-size:12px}.dashboard-period-list{gap:8px;display:grid}.dashboard-period-list>button{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:#fff;border-radius:14px;grid-template-columns:5px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px;display:grid}.dashboard-period-list>button:hover{background:#f7fbf8;border-color:#91b5a1}.dashboard-period-list>button>span:nth-child(2){gap:5px;min-width:0;display:grid}.dashboard-period-list strong{overflow-wrap:anywhere;font-size:12px}.dashboard-period-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.dashboard-period-list .status-dot{height:42px}.monthly-overview{justify-items:center;gap:20px;padding:14px 0 4px;display:grid}.monthly-finance-summary{background:linear-gradient(145deg,#f5fbf7,#fff);border:1px solid #b9d3c3;border-radius:17px;width:100%;display:grid;overflow:hidden}.monthly-total-amount{border-bottom:1px solid #dce9e1;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.monthly-total-amount span{color:var(--muted);font-size:11px;font-weight:800}.monthly-total-amount strong{color:var(--brand);font-size:21px}.monthly-payment-status{grid-template-columns:repeat(4,1fr);display:grid}.monthly-payment-status>span{text-align:center;gap:5px;min-width:0;padding:12px 9px;display:grid}.monthly-payment-status>span+span{border-left:1px solid #e1ebe5}.monthly-payment-status small{color:var(--muted);font-size:9px;font-weight:800}.monthly-payment-status strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.monthly-donut{aspect-ratio:1;width:210px;position:relative}.monthly-donut svg{width:100%;height:100%;display:block}.monthly-donut circle{fill:none;stroke-width:13px;transform-origin:50%;transform:rotate(-90deg)}.monthly-donut text{fill:#fff;paint-order:stroke;stroke:#173f2b55;stroke-width:2px;stroke-linejoin:round;text-anchor:middle;dominant-baseline:middle;font-size:8px;font-weight:900}.monthly-donut-track{stroke:#e6ece8}.monthly-donut-value{stroke-linecap:butt}.monthly-donut-value.bank-transfer{stroke:#ef9b45}.monthly-donut-value.online-payment{stroke:var(--brand)}.monthly-donut-value.external-platform{stroke:#6176d7}.monthly-donut>span{place-content:center;justify-items:center;gap:3px;display:grid;position:absolute;inset:0}.monthly-donut>span strong{font-size:34px;line-height:1}.monthly-donut>span small{color:var(--muted);font-size:11px;font-weight:800}.monthly-source-counts{border:1px solid var(--line);background:#f7faf8;border-radius:15px;grid-template-columns:repeat(3,1fr);width:100%;display:grid;overflow:hidden}.monthly-source-counts>span{color:var(--muted);grid-template-columns:8px 1fr;align-items:center;gap:4px 6px;padding:13px 10px;display:grid}.monthly-source-counts>span+span{border-left:1px solid var(--line)}.monthly-source-counts i{border-radius:50%;width:8px;height:8px}.monthly-source-counts i.bank-transfer{background:#ef9b45}.monthly-source-counts i.online-payment{background:var(--brand)}.monthly-source-counts i.external-platform{background:#6176d7}.monthly-source-counts small{white-space:nowrap;font-size:10px;font-weight:800}.monthly-source-counts strong{color:var(--ink);grid-column:1/-1;font-size:15px}.monthly-source-counts b{color:var(--brand);grid-column:1/-1;font-size:10px}.monthly-source-counts em{grid-column:1/-1;font-size:10px;font-style:normal;font-weight:800}.monthly-overview>p{color:var(--muted);text-align:center;margin:-6px 0 0;font-size:11px;font-weight:700}.external-unpriced-note{color:#8a681b;text-align:center;margin-top:-9px;font-size:9px;line-height:1.5}@media (max-width:480px){.monthly-donut{width:180px}.monthly-total-amount{flex-direction:column;align-items:flex-start;gap:5px}.monthly-total-amount strong{font-size:19px}.monthly-payment-status{grid-template-columns:1fr 1fr}.monthly-payment-status>span:nth-child(3){border-top:1px solid #e1ebe5;border-left:0}.monthly-payment-status>span:nth-child(4){border-top:1px solid #e1ebe5}.monthly-source-counts>span{padding:11px 7px}.monthly-source-counts small{font-size:9px}.monthly-source-counts strong{font-size:13px}}.panel{border:1px solid var(--line);background:#fff;border-radius:22px;padding:20px}.hero-panel{background:linear-gradient(135deg,#fff,#eff7df);justify-content:space-between;align-items:center;gap:20px;display:flex}.hero-panel h2{margin-bottom:6px;font-size:20px}.hero-panel p:not(.eyebrow){color:var(--muted);margin:0;font-size:13px}.compact{white-space:nowrap;min-height:44px}.notice{color:var(--brand-dark);background:#e2f4e9;border-radius:13px;justify-content:space-between;gap:12px;margin-top:14px;padding:13px 15px;font-size:13px;font-weight:700;animation:3s forwards notice-lifecycle;display:flex}.notice button{color:inherit;background:0 0;border:0}@keyframes notice-lifecycle{0%,82%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.notice{animation:none}}.section-head{justify-content:space-between;align-items:end;margin:28px 2px 12px;display:flex}.section-head h2{margin:0;font-size:21px}.section-head span{color:var(--muted);font-size:13px}.reservation-head-actions{align-items:center;gap:9px;display:flex}.reservation-head-actions button{border:1px solid var(--line);height:36px;color:var(--brand);background:#fff;border-radius:10px;padding:0 11px;font-size:12px;font-weight:900}.reservation-head-actions button:disabled{opacity:.5}.filter-row{grid-template-columns:minmax(0,1fr) 130px auto;gap:9px;margin-bottom:12px;display:grid}.completed-reservation-toggle{color:#5d7067;white-space:nowrap;background:linear-gradient(#fff 0%,#f7faf8 100%);border:1px solid #d6e2da;border-radius:11px;justify-content:center;align-items:center;gap:7px;min-height:43px;padding:0 12px;font-size:12px;font-weight:800;transition:border-color .16s,background .16s,color .16s,box-shadow .16s;display:inline-flex;box-shadow:0 3px 10px #1f3a300d}.completed-reservation-toggle:hover{color:var(--brand);border-color:#b3cabd;box-shadow:0 5px 14px #1f3a3017}.completed-reservation-toggle.active{color:var(--brand);background:linear-gradient(#eff8f2 0%,#e7f3eb 100%);border-color:#77a78d;box-shadow:0 4px 12px #23664e1f}.toggle-indicator{background:#cbd3ce;border-radius:999px;width:25px;height:15px;transition:background .16s;position:relative}.toggle-indicator:after{content:"";background:#fff;border-radius:50%;width:9px;height:9px;transition:transform .16s;position:absolute;top:3px;left:3px}.completed-reservation-toggle.active .toggle-indicator{background:var(--brand)}.completed-reservation-toggle.active .toggle-indicator:after{transform:translate(10px)}.reservation-list{gap:9px;display:grid}.reservation-load-more{width:100%;min-height:46px;color:var(--brand);background:linear-gradient(#fff 0%,#f4f8f5 100%);border:1px solid #cbdad1;border-radius:13px;margin-top:12px;font-size:12px;font-weight:900;box-shadow:0 4px 12px #1f3a300f}.reservation-load-more:hover:not(:disabled){background:#eef7f1;border-color:#91b19e}.reservation-load-more:disabled{cursor:wait;opacity:.6}.reservation-card{border:1px solid var(--line);background:#fff;border-radius:17px;grid-template-columns:5px 1fr auto;align-items:center;gap:13px;padding:15px;transition:opacity .18s,border-color .18s,transform .18s;display:grid}.reservation-card.completed{opacity:.48;background:#f3f5f3}.reservation-card.completed:hover{opacity:.7}.reservation-card.canceled .reservation-title>strong{color:var(--muted);text-decoration-line:line-through;text-decoration-color:#8f9994;text-decoration-thickness:2px}.status-dot{background:#9aa49f;border-radius:8px;width:5px;height:48px}.status-dot.confirmed{background:var(--brand)}.status-dot.payment_pending{background:#e5a52f}.status-dot.deposit_overdue{background:#dc5f57}.reservation-title{align-items:center;gap:8px;margin-bottom:6px;display:flex}.reservation-main p,.reservation-main small{color:var(--muted);margin:0;font-size:12px;line-height:1.55;display:block}.badge{color:#59635e;background:#edf0ee;border-radius:20px;padding:4px 7px;font-size:10px;font-weight:900}.badge.confirmed{color:var(--brand);background:#ddf1e5}.badge.payment_pending{color:#8a5900;background:#fff0cd}.badge.deposit_overdue{color:#a6322b;background:#ffe4e1}.source-badge{border-radius:20px;padding:4px 7px;font-size:10px;font-weight:900}.source-badge.spacecloud{color:#5b3db4;background:#e8e1ff}.amount{white-space:nowrap;font-size:14px}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);background:#fff;border-radius:18px;padding:45px}.bottom-nav{z-index:20;width:min(100%,1040px);height:calc(72px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);background:#fffe;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:#89938e;background:0 0;border:0;place-items:center;gap:3px;width:60px;font-size:18px;display:grid}.bottom-nav button:not(.nav-add){grid-template-rows:24px 12px;align-content:center}.bottom-nav span{font-size:10px;line-height:12px}.bottom-nav svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;align-self:center;width:21px;height:21px}.bottom-nav .active{color:var(--brand)}.bottom-nav .nav-add{background:var(--brand);color:#fff;border-radius:50%;width:50px;height:50px;margin-top:-28px;font-size:26px;box-shadow:0 8px 22px #176b4a55}.modal-backdrop{z-index:30;width:100%;padding-bottom:var(--app-keyboard-inset);background:#0c241a88;align-items:end;display:grid;position:fixed;inset:0;overflow:hidden}.sheet{width:min(100%,620px);max-height:min(92dvh, calc(100dvh - var(--app-keyboard-inset) - 8px));overscroll-behavior:contain;scroll-padding-block:18px max(28px, env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:#a9bdb1 transparent;scrollbar-gutter:stable;padding:12px 22px max(28px, env(safe-area-inset-bottom));background:#fff;border-radius:26px 26px 0 0;margin:0 auto;overflow:auto}.sheet input,.sheet select,.sheet textarea{scroll-margin-block:72px}@media (max-width:900px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{touch-action:manipulation;font-size:16px!important}}.sheet::-webkit-scrollbar{width:8px}.sheet::-webkit-scrollbar-track{background:0 0;margin:18px 0}.sheet::-webkit-scrollbar-thumb{background:#a9bdb1 padding-box padding-box;border:2px solid #0000;border-radius:999px}.sheet::-webkit-scrollbar-thumb:hover{background:#7f9b8b padding-box padding-box}.sheet-handle{background:#d9dfdc;border-radius:8px;width:44px;height:5px;margin:0 auto 22px}.sheet-title{justify-content:space-between;align-items:start;display:flex}.sheet-title h2{font-size:24px}.sheet-title button{background:#f0f3f1;border:0;border-radius:50%;width:36px;height:36px;font-size:22px}.detail-header-actions{align-items:center;gap:8px;display:flex}.sheet-title .payment-link-copy-button{color:#16633f;white-space:nowrap;background:#eef8f3;border:1px solid #cbd7d1;border-radius:10px;width:auto;min-height:36px;padding:0 13px;font-size:13px;font-weight:750}.sheet-title .payment-link-copy-button:hover:not(:disabled){background:#e3f4eb;border-color:#7fba9d}.sheet-title .payment-link-copy-button:disabled{cursor:not-allowed;color:#a0a6a3;opacity:.72;background:#f3f4f3;border-color:#e0e4e2}.sheet-title .sheet-close-button{flex:0 0 36px}.full{grid-column:1/-1}@media (min-width:760px){.app-shell{padding:34px 30px 110px}.reservation-list{grid-template-columns:1fr 1fr}.modal-backdrop{align-items:center}.sheet{border-radius:26px;padding:18px 30px 32px}.bottom-nav{border-radius:20px 20px 0 0}.summary-grid article,.summary-grid>button{padding:22px}.hero-panel{padding:26px}}@media (max-width:480px){.summary-grid article,.summary-grid>button{padding:14px 11px}.summary-grid em{display:none}.monthly-revenue-card{gap:7px;padding:10px 11px}.monthly-revenue-card>span{gap:6px}.monthly-revenue-card small{font-size:8px}.monthly-revenue-card strong{font-size:16px}.monthly-revenue-card i{padding:4px 6px;font-size:8px}.summary-metric small{letter-spacing:-.06em;font-size:8px}.summary-grid strong{font-size:23px}.hero-panel{flex-direction:column;align-items:flex-start}.compact{width:100%}.filter-row{grid-template-columns:minmax(0,65fr) minmax(0,35fr)}.filter-row input{grid-column:1/-1}.filter-row select,.completed-reservation-toggle{width:100%;min-width:0}.completed-reservation-toggle{letter-spacing:-.025em;gap:5px;padding:0 7px;font-size:12px}.completed-reservation-toggle .toggle-indicator{flex:0 0 21px;width:21px;height:13px}.completed-reservation-toggle .toggle-indicator:after{top:2px;left:2px}.completed-reservation-toggle.active .toggle-indicator:after{transform:translate(8px)}.reservation-card{grid-template-columns:4px 1fr}.amount{grid-column:2}.login-card{padding:28px 22px}}.reservation-card{text-align:left;width:100%;color:inherit}.reservation-card:hover{border-color:#a7b9ae;transform:translateY(-1px)}.calendar-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.calendar-toolbar select,.venue-selector>select{border:1px solid var(--line);background:#fff;border-radius:12px;height:44px;padding:0 12px;font-weight:800}.calendar-toolbar div{align-items:center;gap:8px;display:flex}.calendar-toolbar button{border:1px solid var(--line);background:#fff;border-radius:11px;width:38px;height:38px;font-size:23px}.calendar-toolbar strong{font-size:14px}.calendar-help{color:var(--muted);margin-bottom:14px;font-size:12px}.week-calendar{border:1px solid var(--line);background:#fff;border-radius:18px;grid-template-columns:48px repeat(7,minmax(66px,1fr));min-width:590px;display:grid;overflow:hidden}.app-shell:has(.week-calendar){overflow-x:auto}.calendar-corner,.day-head{border-bottom:1px solid var(--line);height:62px}.day-head{border-left:1px solid var(--line);align-content:center;place-items:center;gap:3px;display:grid}.day-head span{color:var(--muted);font-size:10px}.day-head strong{font-size:17px}.day-head.today strong{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.calendar-row{display:contents}.hour-label{text-align:center;height:70px;color:var(--muted);border-bottom:1px solid var(--line);padding-top:9px;font-size:10px}.calendar-cell{border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);height:70px;color:var(--brand);background:#fff;padding:5px}.calendar-cell.available:hover{background:#eff7df}.calendar-cell.available span{opacity:0}.calendar-cell.available:hover span{opacity:1}.calendar-cell.closed{cursor:not-allowed;background:#f3f5f3}.calendar-cell.booked{color:var(--brand-dark);background:#e5f2ea;align-content:center;gap:3px;display:grid}.calendar-cell.booked.external-booking,.mobile-time-list>button.booked.external-booking{background:linear-gradient(135deg,#e5dfff,#f2efff);border-left-color:#7054c7}.calendar-cell.booked.external-booking strong,.mobile-time-list>button.booked.external-booking strong{color:#4e349c}.month-day.has-external-reservations{background:linear-gradient(150deg,#eee9ff 0%,#fff 72%);border-color:#9b87d5}.calendar-cell.booked strong{font-size:10px}.calendar-cell.booked small{font-size:9px}.mobile-week-calendar{display:none}.venue-selector{align-items:center;gap:12px;margin-bottom:18px;display:flex}.venue-selector .primary-button{white-space:nowrap;min-height:44px}.venue-create-sheet{max-width:460px}.venue-create-sheet .stack-form{margin-top:20px}.policy-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.policy-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:20px}.policy-card.wide{grid-column:1/-1}.policy-heading{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.policy-heading h2{margin:0;font-size:19px}.policy-heading>span{color:var(--muted);font-size:11px}.inline-policy-form{grid-template-columns:1fr 1fr 1fr auto;gap:7px;margin-bottom:15px;display:grid}.inline-policy-form input,.inline-policy-form select,.compact-form input,.compact-form select{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;height:41px;padding:0 10px}.inline-policy-form button,.secondary-button{background:var(--ink);color:#fff;border:0;border-radius:10px;padding:0 14px;font-weight:800}.compact-form{margin:0 0 15px}.form-pair{grid-template-columns:1fr 1fr;gap:7px;display:grid}.secondary-button{min-height:42px}.policy-list{gap:7px;display:grid}.policy-list>div{background:var(--paper);border-radius:11px;justify-content:space-between;align-items:center;gap:10px;padding:10px 11px;font-size:12px;display:flex}.policy-list span{gap:2px;display:grid}.policy-list small{color:var(--muted)}.policy-list button{color:#a33;background:0 0;border:0;font-size:11px}.closure-form{grid-template-columns:1fr 1fr 1fr auto}.large-badge{background:#edf0ee;border-radius:20px;margin:2px 0 18px;padding:7px 11px;font-size:11px;font-weight:900;display:inline-block}.large-badge.confirmed{color:var(--brand);background:#ddf1e5}.large-badge.payment_pending{color:#8a5900;background:#fff0cd}.detail-grid{grid-template-columns:1fr 1fr;gap:10px;margin:0;display:grid}.detail-grid>div{background:var(--paper);border-radius:13px;padding:13px}.detail-grid dt{color:var(--muted);margin-bottom:6px;font-size:10px}.detail-grid dd{margin:0;font-size:13px;font-weight:800;line-height:1.55}.customer-call-button{max-width:100%;min-height:34px;color:var(--brand);background:linear-gradient(#f5fbf7 0%,#edf7f1 100%);border:1px solid #bcd3c5;border-radius:10px;align-items:center;gap:7px;padding:6px 9px;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s;display:inline-flex;box-shadow:0 3px 9px #23664e14}.customer-call-button:hover{border-color:#82ae95;transform:translateY(-1px);box-shadow:0 5px 13px #23664e24}.customer-call-button:active{transform:translateY(0)}.customer-call-button svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 16px;width:16px;height:16px}.customer-call-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.customer-call-button small{color:#507064;border-left:1px solid #c9ddd1;flex:none;padding-left:7px;font-size:9px;font-weight:900}.detail-grid .detail-memo{white-space:pre-wrap;overflow-wrap:anywhere}.reservation-manage{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.reservation-manage h3{margin:0;font-size:17px}.reservation-edit-form{margin-top:16px}.external-contact-manage{background:#faf8ff;border:1px solid #ddd6fe;border-radius:16px;padding:18px}.external-platform-notice{color:#5b21b6;background:#ede9fe;border-radius:12px;margin:14px 0 0;padding:12px 14px;font-size:12px;font-weight:800;line-height:1.55}.reservation-close-button{width:100%;min-height:48px;color:var(--ink);background:#f5f7f5;border:1px solid #aeb8b2;border-radius:13px;margin-top:14px;font-weight:900}.reservation-close-button.standalone{margin-top:22px}.reservation-danger-zone{border-top:1px solid #ead8d5;gap:10px;margin-top:22px;padding-top:18px;display:grid}.reservation-danger-zone span{color:#a63429;font-size:11px;font-weight:900}.reservation-danger-zone p{color:var(--muted);margin:4px 0 0;font-size:12px}.cancel-toggle{color:#a63429;background:#fff;border:1px solid #e0aaa4;border-radius:13px;width:100%;min-height:46px;margin-top:0;font-weight:900}.cancel-form{background:#fff4f2;border-radius:15px;gap:12px;margin-top:10px;padding:15px;display:grid}.cancel-form strong{color:#9b3028}.cancel-form label{gap:7px;font-size:12px;font-weight:800;display:grid}.cancel-form label:has(input[name=refund_percent]:disabled){display:none}.cancel-form input,.cancel-form textarea{background:#fff;border:1px solid #e4c4c0;border-radius:11px;width:100%;padding:11px}.cancel-form p{color:#875b56;margin:0;font-size:10px;line-height:1.55}.cancel-form button{color:#fff;background:#a63429;border:0;border-radius:11px;min-height:45px;font-weight:900}.cancel-form button:disabled{opacity:.5}.reservation-form{grid-template-columns:1fr}.reservation-form label,.reservation-form>button{grid-column:1}.reservation-form-sheet{width:min(100%,520px)}.reservation-range{letter-spacing:-.02em;word-break:keep-all;font-size:15px!important}.form-hint{color:var(--muted);margin:-4px 0 2px;font-size:12px;line-height:1.55}.end-time-field{gap:8px;font-size:13px;font-weight:800;display:grid}.end-time-row{grid-template-columns:minmax(0,1fr) 72px;gap:8px;display:grid}.end-time-row select{border:1px solid var(--line);background:#fff;border-radius:13px;outline:none;width:100%;height:48px;padding:0 14px}.next-day-button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:13px;font-size:13px;font-weight:900}.next-day-button.active{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 5px 12px #285c392e}.time-warning{color:#ad3027;background:#fff1ef;border-radius:11px;margin:-5px 0 0;padding:10px 12px;font-size:12px;font-weight:700;line-height:1.5}.bank-transfer-notice{color:var(--brand-dark);background:#edf7ef;border-radius:11px;margin:-5px 0 0;padding:11px 12px;font-size:11px;font-weight:700;line-height:1.55}.manual-price-box{background:#f7faf7;border:1px solid #cbd9d0;border-radius:15px;gap:12px;padding:15px;display:grid}.manual-price-box>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.manual-price-box>div strong{font-size:14px}.manual-price-box>div span{color:var(--brand);font-size:10px;font-weight:900}.manual-price-box label{grid-column:auto}.manual-price-box p{color:var(--muted);margin:-2px 0 0;font-size:10px;line-height:1.5}.deposit-option-box{gap:7px}.reservation-form .deposit-checkbox-line{cursor:pointer;flex-direction:row;grid-column:1;justify-content:flex-start;align-items:center;gap:9px;width:fit-content;display:flex}.reservation-form .deposit-checkbox-line input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);cursor:pointer;flex:0 0 18px;margin:0;padding:0}.reservation-form .deposit-checkbox-line span{font-size:14px;font-weight:800;line-height:1.3}.calendar-mode{background:#e7ece8;border-radius:12px;grid-template-columns:1fr 1fr;margin-bottom:12px;padding:4px;display:inline-grid}.calendar-mode button{color:var(--muted);background:0 0;border:0;border-radius:9px;padding:8px 20px;font-size:12px;font-weight:900}.calendar-mode button.active{color:var(--brand);background:#fff;box-shadow:0 2px 8px #183c2920}.month-calendar{border:1px solid var(--line);background:#fff;border-radius:18px;grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.month-weekday{text-align:center;color:var(--muted);background:#f0f4f1;padding:12px 4px;font-size:11px;font-weight:900}.month-day{text-align:left;border:0;border-top:1px solid var(--line);border-left:1px solid var(--line);min-height:105px;color:var(--ink);background:#fff;padding:10px;position:relative}.month-day:hover{background:#f3f8ec}.month-day.outside{color:#aab1ad;background:#f6f7f6}.month-day.today>strong{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:27px;height:27px;display:grid}.month-day>span{color:var(--muted);margin-top:12px;font-size:10px;display:block}.month-day>div{gap:4px;margin-top:6px;display:flex}.month-day i{background:#9aa49f;border-radius:50%;width:7px;height:7px}.month-day i.confirmed{background:var(--brand)}.month-day i.payment_pending{background:#e5a52f}.month-day i.deposit_overdue{background:#dc5f57}.day-summary-count{color:var(--muted);margin:-6px 0 14px;font-size:12px}.day-reservations{gap:8px;display:grid}.day-reservations>button{border:1px solid var(--line);text-align:left;color:var(--ink);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:13px;display:flex}.day-reservations>button.completed{color:#77817b;opacity:.72;background:#f5f7f5;border-color:#d9dfdb}.day-reservations>button.completed:hover{opacity:1}.day-reservations span{gap:5px;display:grid}.day-reservations small{color:var(--muted)}.day-reservations em{white-space:nowrap;font-style:normal}.day-create-button{width:100%;margin-top:18px}.venue-edit-card{border:1px solid var(--line);background:#fff;border-radius:20px;margin-bottom:14px;padding:20px}.venue-info-heading-actions{align-items:center;gap:8px;display:flex}.venue-edit-open-button{min-height:36px;color:var(--brand);background:#f2f8f4;border:1px solid #b9d0c2;border-radius:10px;padding:0 12px;font-size:11px;font-weight:900}.venue-info-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.venue-info-summary>div{background:#f8faf8;border:1px solid #e1e9e4;border-radius:13px;min-width:0;padding:13px}.venue-info-summary .wide{grid-column:1/-1}.venue-info-summary dt{color:var(--muted);margin-bottom:6px;font-size:10px;font-weight:800}.venue-info-summary dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:13px;font-weight:800;line-height:1.55}.venue-danger-zone{background:#fff9f8;border:1px solid #ead2cf;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;padding:15px;display:flex}.venue-danger-zone strong{font-size:12px}.venue-danger-zone p{color:#806b67;margin:4px 0 0;font-size:10px;line-height:1.5}.venue-danger-zone .state-button{flex:none;min-height:39px}.venue-edit-sheet{max-width:620px}.venue-edit-target{color:var(--muted);background:#f1f7f3;border-radius:11px;margin:0 0 18px;padding:11px 13px;font-size:11px}.venue-edit-target strong{color:var(--brand)}.venue-edit-modal-form label small{color:var(--muted);font-size:9px;font-weight:700}.venue-modal-actions{grid-template-columns:1fr 1.4fr;gap:9px;margin-top:5px;display:grid}.venue-modal-actions button{min-height:46px}.venue-edit-form{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.venue-edit-form label{gap:7px;font-size:12px;font-weight:800;display:grid}.venue-edit-form input,.venue-edit-form textarea{border:1px solid var(--line);background:#fff;border-radius:11px;outline:none;width:100%;padding:11px}.venue-edit-form input{height:43px}.venue-edit-form textarea{resize:vertical}.venue-edit-form .wide{grid-column:1/-1}.venue-actions{justify-content:flex-end;gap:9px;display:flex}.state-button{background:#fff;border:1px solid;border-radius:12px;padding:0 16px;font-weight:800}.state-button.danger{color:#a63429;border-color:#e3b2ad}.state-button.activate{color:var(--brand);border-color:#9bc7ac}.venue-state{border-radius:20px;padding:6px 9px;font-size:10px;font-weight:900}.venue-state.active{color:var(--brand);background:#ddf1e5}.venue-state.inactive{color:#9b3028;background:#f0e4e2}.month-day.has-reservations{z-index:1;background:linear-gradient(145deg,#eef8f1,#fff);box-shadow:inset 0 0 0 2px #5e9d79}.month-day.has-reservations:hover{box-shadow:inset 0 0 0 2px var(--brand);background:#e3f2e8}.month-day.has-reservations>strong{color:var(--brand);font-size:17px}.month-day.today.has-reservations>strong{color:#fff}.month-day.has-reservations>span{background:var(--brand);color:#fff;border-radius:999px;align-items:center;margin-top:10px;padding:5px 8px;font-size:9px;font-weight:900;display:inline-flex;box-shadow:0 4px 10px #176b4a2e}.month-day.has-reservations>div{gap:5px;margin-top:8px}.month-day.has-reservations i{width:9px;height:9px;box-shadow:0 0 0 2px #fff}.calendar-cell.booked{border-left:4px solid var(--brand);background:linear-gradient(135deg,#cfe9d8,#e8f5ec);position:relative;box-shadow:inset 0 0 0 1px #9ac8aa}.calendar-cell.booked strong{color:#0a4d32;font-size:11px}.calendar-cell.booked small{width:max-content;color:var(--brand);background:#fff;border-radius:999px;padding:3px 5px;font-weight:900;display:inline-block}.calendar-cell.booked.completed,.mobile-time-list>button.booked.completed{opacity:.62;background:linear-gradient(135deg,#edf0ee,#f8f9f8);border-left-color:#aeb7b1;box-shadow:inset 0 0 0 1px #d7ddd9}.calendar-cell.booked.completed strong,.mobile-time-list>button.booked.completed strong{color:#667069}.calendar-cell.booked.completed small,.mobile-time-list>button.booked.completed small{color:#7c857f;background:#f8f9f8}.mobile-time-list>button.booked{border-left:5px solid var(--brand);background:linear-gradient(90deg,#d8eddf,#eef8f1)}.mobile-time-list>button.booked strong{font-size:13px}.mobile-time-list>button.booked small{color:var(--brand);background:#fff;border-radius:999px;padding:4px 7px;font-weight:900}.month-calendar{background:0 0;border:0;border-radius:0;gap:7px;overflow:visible}.month-weekday{color:#7b8981;background:0 0;border-radius:9px;padding:8px 4px;font-size:11px}.month-weekday.weekend{color:#c43d31;font-weight:800}.month-day{background:#fff;border:1px solid #e1e8e3;border-radius:15px;min-width:0;min-height:112px;padding:11px;transition:transform .16s,box-shadow .16s,border-color .16s;box-shadow:0 3px 10px #173f2b0a}.month-day:hover{z-index:2;background:#fff;border-color:#9cbaaa;transform:translateY(-2px);box-shadow:0 8px 20px #173f2b18}.month-day.outside{color:#aab2ad;box-shadow:none;opacity:.58;background:#f6f8f6;border-style:dashed}.month-day>strong{border-radius:9px;place-items:center;min-width:27px;height:27px;font-size:14px;display:grid;position:absolute;top:10px;left:10px}.month-day.weekend>strong{color:#c43d31}.month-day.today{border-color:#176b4a;box-shadow:0 0 0 1px #176b4a,0 7px 18px #176b4a1a}.month-day.today>strong{border-radius:9px}.month-day.has-reservations{background:linear-gradient(150deg,#e8f5ec 0%,#fff 72%);border-color:#8fbaa0;box-shadow:0 7px 18px #176b4a18}.month-day.has-reservations.completed-only{opacity:.68;background:linear-gradient(150deg,#f0f3f1 0%,#fafbfa 72%);border-color:#d5dcd7;box-shadow:0 3px 10px #45534a0d}.month-day.has-reservations.completed-only:hover{opacity:1}.month-day.has-reservations.completed-only>span{color:#737d76;background:#e7ebe8}.month-day.has-reservations>span{letter-spacing:-.02em;white-space:nowrap;border-radius:6px;align-items:center;gap:4px;width:100%;margin-top:40px;padding:6px 9px;font-size:10px;display:flex}.month-day.has-reservations>span em{opacity:.72;font-style:normal}.month-day.has-reservations>div{gap:5px;position:absolute;bottom:10px;left:10px;right:10px}.month-day.has-reservations i{box-sizing:content-box;border:2px solid #fff;width:8px;height:8px;box-shadow:0 1px 4px #173f2b30}.day-head.holiday span,.month-day.holiday>strong{color:#c43d31}.month-day.holiday{background:linear-gradient(150deg,#fff2ef,#fff 72%)}.month-day.has-reservations.holiday{background:linear-gradient(150deg,#fff0ec 0%,#eef8f1 82%)}.month-day>b{color:#c43d31;white-space:nowrap;text-overflow:ellipsis;margin-top:34px;font-size:9px;display:block;overflow:hidden}.month-day.today.holiday>strong{color:#fff}.month-day.today.weekend>strong{color:#c43d31;background:#fff0ed}.month-day.holiday>span{margin-top:5px}.policy-description{color:var(--muted);margin:-8px 0 13px;font-size:11px;line-height:1.5}.holiday-list{max-height:220px;overflow:auto}.option-list>div.inactive{opacity:.5}.option-list>div>span{flex:1;min-width:0}.option-list>div>strong{white-space:nowrap}.option-actions{align-items:center;gap:3px;display:flex}.policy-list .option-toggle{color:var(--brand)}.venue-refund-policy-link{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:17px;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:12px;margin-top:14px;padding:16px;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid;box-shadow:0 8px 24px #263d3210}.venue-refund-policy-link:hover{border-color:#a9c8b8;transform:translateY(-1px);box-shadow:0 10px 28px #263d321a}.venue-refund-policy-icon{width:42px;height:42px;color:var(--brand);background:#e5f2ea;border-radius:13px;place-items:center;display:grid}.venue-refund-policy-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:21px}.venue-refund-policy-link>span:nth-child(2){gap:4px;min-width:0;display:grid}.venue-refund-policy-link strong{font-size:13px}.venue-refund-policy-link small{color:var(--muted);font-size:10px;line-height:1.5}.venue-refund-policy-arrow{color:var(--brand);text-align:right;font-size:24px;font-weight:700}.hours-preset-grid{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:13px;display:grid}.hours-preset-button{min-height:43px;color:var(--brand);background:#edf7ef;border:1px solid #9bc7ac;border-radius:11px;font-size:12px;font-weight:900}.hours-preset-button.all{background:var(--brand);color:#fff;grid-column:1/-1}.space-control-hero{background:linear-gradient(135deg,#fff,#edf7ef);justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;display:flex}.space-control-hero h2{margin-bottom:7px;font-size:21px}.space-control-hero p:not(.eyebrow){color:var(--muted);margin:0;font-size:12px;line-height:1.6}.integration-waiting{color:var(--brand);background:#edf7ef;border:1px solid #9bc7ac;border-radius:999px;flex:none;padding:9px 13px;font-size:10px;font-weight:900}.space-control-toolbar{border:1px solid var(--line);background:#fff;border-radius:17px;gap:13px;margin-bottom:14px;padding:14px;display:grid}.space-control-toolbar label{color:var(--muted);grid-template-columns:auto minmax(180px,320px);align-items:center;gap:12px;font-size:11px;font-weight:800;display:grid}.space-control-toolbar select{border:1px solid var(--line);background:#fff;border-radius:11px;min-width:0;height:42px;padding:0 11px}.iot-space-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.iot-space-action-grid.single{grid-template-columns:1fr}.iot-space-settings-button{width:100%;min-height:68px;color:var(--ink);text-align:left;background:linear-gradient(135deg,#f8fffa,#e9f6ed);border:1px solid #9dc4ad;border-radius:17px;grid-template-columns:42px minmax(0,1fr) 24px;align-items:center;gap:12px;padding:11px 14px;transition:transform .15s,border-color .15s,box-shadow .15s;display:grid;box-shadow:0 8px 22px #176b4a14}.iot-space-settings-button:hover:not(:disabled){border-color:var(--brand);transform:translateY(-1px);box-shadow:0 10px 26px #176b4a21}.iot-space-settings-button:active:not(:disabled){transform:translateY(0)}.iot-space-settings-icon{background:var(--brand);color:#fff;border-radius:13px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 6px 14px #176b4a29}.iot-space-settings-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:21px;height:21px}.iot-space-settings-button.gateway{background:linear-gradient(135deg,#fbfdff,#edf4f8);border-color:#a8bdca}.iot-space-settings-button.gateway:hover{border-color:#4e7e99;box-shadow:0 10px 26px #315f7921}.iot-space-settings-button.gateway .iot-space-settings-icon{background:#3f718c;box-shadow:0 6px 14px #315f7929}.iot-space-settings-button.gateway .iot-space-settings-arrow{color:#3f718c}.iot-space-settings-copy{gap:5px;min-width:0;display:grid}.iot-space-settings-copy strong{color:#173d2c;letter-spacing:-.02em;font-size:14px;font-weight:900}.iot-space-settings-copy small{color:#527262;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:750;line-height:1.35;overflow:hidden}.iot-space-settings-arrow{color:var(--brand);text-align:center;font-size:27px;font-weight:400;line-height:1}.iot-space-settings-button:disabled{cursor:wait;border-color:var(--line);box-shadow:none;opacity:.65;background:#f4f6f4}.iot-live-panel{margin-bottom:14px}.iot-live-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.iot-live-heading h2{margin-bottom:0;font-size:19px}.iot-live-heading>span{color:var(--muted);background:#f0f2f1;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:900}.iot-live-heading>span.online{color:var(--brand);background:#e4f4e9}.iot-settings-form{grid-template-columns:1.2fr 1fr 1fr;align-items:end;gap:12px;margin-bottom:14px;display:grid}.iot-settings-form h2{margin-bottom:0;font-size:18px}.iot-settings-form>label:not(.iot-check){color:var(--muted);gap:7px;font-size:10px;font-weight:800;display:grid}.iot-settings-form>label span{color:var(--ink);align-items:center;gap:6px;display:flex}.iot-settings-form input[type=number]{border:1px solid var(--line);border-radius:10px;width:82px;height:40px;padding:0 10px}.iot-check{color:var(--muted);align-items:center;gap:7px;font-size:10px;font-weight:800;display:flex}.iot-check input{width:16px;height:16px;accent-color:var(--brand)}.iot-settings-form>button{grid-column:3}.iot-monitor-groups{gap:22px;display:grid}.iot-monitor-group{gap:10px;display:grid}.iot-monitor-group-head{justify-content:space-between;align-items:end;gap:12px;padding:0 3px;display:flex}.iot-monitor-group-head h3{margin:0 0 3px;font-size:15px}.iot-monitor-group-head p{color:var(--muted);margin:0;font-size:9px}.iot-monitor-group-head>span{color:var(--muted);background:#eef2ef;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900}.iot-device-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.iot-device-card{border:1px solid var(--line);background:#fff;border-radius:19px;grid-template-columns:1fr;gap:13px;padding:17px;display:grid}.iot-device-card-head{grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.iot-device-card-head>div:nth-child(2){gap:3px;min-width:0;display:grid}.iot-device-icon{border-radius:14px;place-items:center;width:44px;height:44px;font-size:20px;font-weight:900;display:grid}.iot-device-card.climate .iot-device-icon{color:#3478ad;background:#e7f3ff}.iot-device-card.environment .iot-device-icon{color:var(--brand);background:#e6f5ec}.iot-device-card.power .iot-device-icon{color:#a76200;background:#fff1d7}.iot-device-card.door .iot-device-icon{color:#7153a6;background:#f1eaff}.iot-outlet-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:23px;height:23px}.iot-door-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:25px;height:25px}.iot-device-card span{color:var(--muted);font-size:10px;font-weight:800}.iot-device-card strong{overflow-wrap:anywhere;font-size:14px}.iot-device-card small{color:var(--muted);font-size:9px;line-height:1.45}.iot-device-card button{border:1px solid var(--line);color:#9aa39e;background:#f4f6f4;border-radius:10px;min-height:38px;font-size:10px;font-weight:800}.iot-device-card-tools{align-items:center;gap:6px;display:flex}.iot-device-card-tools .iot-battery-level{white-space:nowrap;color:#65746c;font-size:12px;font-weight:600}.iot-device-card .iot-device-rename{width:32px;min-height:32px;color:var(--brand);background:#fff;place-items:center;padding:0;display:grid}.iot-device-rename svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:17px;height:17px}.iot-status-row{flex-wrap:wrap;gap:7px;display:flex}.iot-status-badge{border-radius:999px;align-items:center;gap:6px;padding:7px 10px;display:inline-flex}.iot-status-badge i{background:currentColor;border-radius:50%;width:7px;height:7px}.iot-status-badge.online{color:#247b43;background:#e7f5eb}.iot-status-badge.offline{color:#8b928e;background:#f0f1f0}.iot-status-badge.power-state.on{color:#2469a8;background:#e8f1ff}.iot-status-badge.power-state.off{color:#666d69;background:#f3f3f3}.iot-power-message{color:#56605a;background:#f3f4f3;border-radius:12px;margin:0;padding:12px 13px;font-size:11px;font-weight:800;line-height:1.55}.iot-power-message.on{color:#2469a8;background:#e9f3ff}.iot-power-message.requested{color:#247b43;background:#e7f5eb;box-shadow:inset 3px 0 #2f8150}.iot-power-message strong{color:inherit;margin-left:4px;font-size:11px}.iot-door-message{background:#f3f4f3;border-radius:13px;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:4px 14px;margin:0;padding:14px;display:grid}.iot-door-state-icon{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;grid-row:1/3;width:72px;height:72px}.iot-door-message>strong{align-self:end}.iot-door-message>span{align-self:start}.iot-door-message strong{font-size:16px}.iot-door-message span{color:inherit;font-size:10px}.iot-door-message.closed{color:#247b43;background:#e8f5ed}.iot-door-message.open{color:#ad4b25;background:#fff0e8;box-shadow:inset 3px 0 #dc6b3f}.iot-door-message.unknown,.iot-door-message.offline{color:#737b77}.iot-sensor-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.iot-sensor-values>span{background:#f1f8f3;border-radius:14px;gap:3px;padding:15px;display:grid}.iot-sensor-values strong{color:var(--ink);font-size:25px}.iot-sensor-values em{color:var(--muted);margin-left:2px;font-size:12px;font-style:normal}.iot-last-seen{display:block}.iot-device-card.empty{background:#fafbfa;border-style:dashed}.iot-power-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:7px;display:grid}.iot-power-actions button{color:var(--brand);background:#f0f7f2;grid-column:auto}.iot-power-actions button:last-child{color:#a43b32;background:#fff3f1}.iot-power-actions button:disabled{color:#9aa39e;background:#f4f6f4}.iot-automation-card{gap:18px;display:grid}.iot-automation-card h2{margin-bottom:6px;font-size:19px}.iot-automation-card p:not(.eyebrow){color:var(--muted);margin:0;font-size:11px}.iot-automation-flow{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:10px;display:grid}.iot-automation-flow span{text-align:center;background:#f3f7f4;border-radius:13px;gap:4px;padding:13px;display:grid}.iot-automation-flow strong{font-size:12px}.iot-automation-flow small{color:var(--muted);font-size:9px}.iot-automation-flow i{color:#9baa9f;font-style:normal}.iot-automation-card>button:disabled{opacity:.55}.iot-refresh-time{color:var(--muted);text-align:right;font-size:9px}.iot-live-panel>.iot-refresh-time{margin-top:13px;display:block}.iot-history-panel{gap:14px;margin-bottom:14px;display:grid;overflow:hidden}.iot-history-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.iot-history-heading h2{margin:0;font-size:19px}.iot-history-heading>span{color:var(--muted);font-size:9px;font-weight:800}.iot-history-controls{align-items:end;gap:7px;display:flex}.iot-history-controls label{color:var(--muted);gap:5px;font-size:9px;font-weight:800;display:grid}.iot-history-controls input{border:1px solid var(--line);width:148px;height:38px;color:var(--ink);background:#fff;border-radius:10px;padding:0 9px;font-size:11px;font-weight:800}.iot-history-controls button{min-height:38px;color:var(--brand);background:#f0f7f2;border:1px solid #b7ccbf;border-radius:10px;padding:0 13px;font-size:10px;font-weight:900}.iot-history-summary{color:var(--muted);margin:-4px 0 0;font-size:9px;font-weight:800}.iot-chart-legend{align-items:center;gap:16px;display:flex}.iot-chart-legend span{color:var(--muted);align-items:center;gap:6px;font-size:10px;font-weight:900;display:inline-flex}.iot-chart-legend i{border-radius:999px;width:18px;height:3px}.iot-chart-legend .temperature i{background:#e06446}.iot-chart-legend .humidity i{background:#3d7fbd}.iot-chart-scroll{scrollbar-width:thin;scrollbar-color:#b5c7bc transparent;width:100%;overflow-x:auto}.iot-history-chart{width:100%;min-width:650px;height:auto;display:block}.iot-chart-grid{stroke:#edf1ee;stroke-width:1px}.iot-chart-axis{fill:#89928d;font-size:10px;font-weight:700}.iot-chart-axis.temperature-axis{fill:#bd624d}.iot-chart-axis.humidity-axis{fill:#477da9}.iot-chart-line{fill:none;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.iot-chart-line.temperature{stroke:#e06446}.iot-chart-line.humidity{stroke:#3d7fbd}.iot-chart-empty{text-align:center;background:#f8faf8;border:1px dashed #cbd6cf;border-radius:16px;place-content:center;gap:6px;min-height:180px;display:grid}.iot-chart-empty strong{font-size:13px}.iot-chart-empty span{color:var(--muted);font-size:10px}.iot-settings-sheet{max-width:500px}.iot-device-name-sheet{max-width:430px}.iot-ir-profile-status{border-radius:10px;padding:9px 11px;font-weight:800;display:block}.iot-ir-profile-status.configured{color:#356d9c;background:#eef6ff}.iot-ir-profile-status.required{color:#9b6417;background:#fff3e2}.iot-ir-profile-fields{background:#f7fbf8;border:1px solid #cfe0d5;border-radius:15px;gap:12px;margin:2px 0;padding:15px;display:grid}.iot-ir-profile-fields legend{color:var(--brand);padding:0 6px;font-size:12px;font-weight:900}.iot-ir-profile-fields p{color:var(--muted);margin:0;font-size:10px;line-height:1.55}.iot-ir-profile-fields>label,.iot-ir-profile-selector-grid label,.iot-ir-default-grid label{color:var(--muted);gap:7px;font-size:10px;font-weight:800;display:grid}.iot-ir-profile-fields select,.iot-ir-profile-fields input{border:1px solid var(--line);width:100%;min-width:0;height:42px;color:var(--ink);background:#fff;border-radius:10px;padding:0 10px}.iot-ir-profile-fields select:disabled{color:#9aa59e;cursor:not-allowed;background:#eef2ef}.iot-ir-profile-selector-grid{grid-template-columns:1fr 1.4fr;gap:8px;display:grid}.iot-ir-default-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.iot-ir-profile-fields>small{color:#8a6b38;font-size:9px;line-height:1.5}.iot-ir-learning-panel{background:#fffaf0;border:1px solid #e5d6aa;border-radius:12px;gap:10px;padding:12px;display:grid}.iot-ir-custom-toggle{width:100%;color:var(--ink);text-align:left;background:#f6faf7;border:1px dashed #9dbbaa;border-radius:12px;gap:4px;padding:13px 14px;display:grid}.iot-ir-custom-toggle strong{color:var(--brand);font-size:12px}.iot-ir-custom-toggle span{color:var(--muted);font-size:10px;line-height:1.5}.iot-ir-custom-toggle.active{border-style:solid;border-color:var(--brand);background:#edf7f1;box-shadow:0 0 0 3px #176b4a12}.iot-ir-custom-fields{grid-template-columns:.7fr 1.3fr;gap:9px;display:grid}.iot-ir-learning-panel strong{color:#71531d;font-size:11px}.iot-ir-learning-panel p{margin-top:5px}.iot-ir-learning-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.iot-ir-learning-actions button{color:#76591f;background:#fff;border:1px solid #d8bd79;border-radius:10px;min-height:42px;font-size:10px;font-weight:900}.iot-ir-learning-actions button.learned{color:#176c44;background:#eef9f2;border-color:#78b995}.iot-ir-learning-actions button:disabled{opacity:.6}.iot-ir-learning-panel>small{color:#9a6718;font-size:9px}.iot-ir-learning-panel>small.completed{color:#176c44}.iot-gateway-limit-notice{color:#557063;background:#f4f8f5;border:1px solid #d4e0d8;border-radius:13px;margin:12px 0;padding:12px 14px;font-size:10px;font-weight:800;line-height:1.55}.iot-device-registration-sheet{max-width:480px}.iot-gateway-sheet{max-width:680px}.iot-gateway-create{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:9px;margin:16px 0;display:grid}.iot-gateway-create label{gap:7px;font-size:11px;font-weight:900;display:grid}.iot-gateway-create input{width:100%;min-width:0}.iot-gateway-create button{white-space:nowrap;min-height:44px}.iot-gateway-list{scrollbar-width:thin;scrollbar-color:#a8beb1 transparent;gap:12px;max-height:min(430px,48dvh);padding-right:3px;display:grid;overflow-y:auto}.iot-gateway-card{border:1px solid var(--line);background:#f8faf8;border-radius:17px;gap:9px;padding:15px;display:grid}.iot-gateway-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.iot-gateway-card-head>div{gap:4px;min-width:0;display:grid}.iot-gateway-card-head strong{font-size:14px}.iot-gateway-card-head small{color:var(--muted);font-size:9px}.iot-gateway-card-head>span{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:6px 9px;font-size:9px;font-weight:900;display:inline-flex}.iot-gateway-card-head>span i{background:currentColor;border-radius:50%;width:7px;height:7px}.iot-gateway-card-head>span.online{color:var(--brand);background:#e4f4e9}.iot-gateway-card-head>span.offline{color:#858d88;background:#ecefed}.iot-connection-row{grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.iot-connection-row>span{color:var(--muted);font-size:8px;font-weight:900}.iot-connection-row code{color:#34453b;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #d9e1dc;border-radius:9px;padding:9px 10px;font-size:9px;overflow:hidden}.iot-connection-row button{min-height:34px;color:var(--brand);background:#eef7f1;border:1px solid #aac4b5;border-radius:9px;padding:0 10px;font-size:9px;font-weight:900}.iot-gateway-empty{min-height:125px;color:var(--muted);text-align:center;border:1px dashed #c6d3cb;border-radius:16px;place-content:center;gap:5px;display:grid}.iot-gateway-empty strong{color:var(--ink);font-size:12px}.iot-gateway-empty span{font-size:9px}.iot-gateway-reset{width:100%;margin-top:4px}.iot-discovery-section{gap:10px;margin:16px 0;display:grid}.iot-discovery-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.iot-discovery-heading>div{gap:3px;display:grid}.iot-discovery-heading strong{font-size:13px}.iot-discovery-heading small{color:var(--muted);font-size:9px}.iot-discovery-heading>span{color:var(--brand);white-space:nowrap;background:#e7f4eb;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900}.iot-discovery-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.iot-discovery-actions button{min-height:42px}.iot-discovery-actions button:disabled{cursor:not-allowed;opacity:.48}.iot-discovery-warning{color:#8b5b16;background:#fff5e5;border-radius:10px;margin:0;padding:9px 11px;font-size:9px;line-height:1.45}.iot-discovery-list{gap:10px;display:grid}.iot-discovery-card{background:#f5fbf7;border:1px solid #b8d3c2;border-radius:15px;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) auto;align-items:end;gap:9px;padding:13px;display:grid}.iot-discovery-device-head{grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.iot-discovery-device-head>div{gap:3px;min-width:0;display:grid}.iot-discovery-device-head strong{overflow-wrap:anywhere;font-size:12px}.iot-discovery-device-head small{color:var(--muted);font-size:8px}.iot-discovery-device-head>span{color:#946000;background:#fff1cf;border-radius:999px;padding:5px 7px;font-size:8px;font-weight:900}.iot-discovery-card label{color:var(--muted);gap:5px;font-size:9px;font-weight:900;display:grid}.iot-discovery-card input,.iot-discovery-card select{border:1px solid var(--line);background:#fff;border-radius:9px;width:100%;min-width:0;height:39px;padding:0 9px}.iot-discovery-card button{white-space:nowrap;min-height:39px;padding:0 12px}.iot-discovery-empty{min-height:96px;color:var(--muted);text-align:center;border:1px dashed #c8d4cc;border-radius:14px;place-content:center;gap:5px;display:grid}.iot-discovery-empty strong{color:var(--ink);font-size:11px}.iot-discovery-empty span{font-size:9px}.iot-registration-divider{color:var(--muted);align-items:center;gap:10px;margin:22px 0 12px;font-size:9px;font-weight:900;display:flex}.iot-registration-divider:before,.iot-registration-divider:after{background:var(--line);content:"";flex:1;height:1px}.iot-registration-form select{width:100%}.iot-registration-help{color:var(--muted);background:#f3f7f4;border-radius:11px;margin:0;padding:11px 12px;font-size:10px;line-height:1.55}.danger-outline-button{color:#a43b32;background:#fff;border:1px solid #e2aaa5;border-radius:11px;min-height:42px;font-weight:800}.iot-settings-modal-form{margin-top:18px}.iot-settings-modal-form>label:not(.iot-check){gap:8px;font-size:12px;font-weight:900;display:grid}.iot-minute-input{border:1px solid var(--line);color:var(--muted);background:#f8faf8;border-radius:13px;align-items:center;gap:7px;padding:13px;font-size:11px;font-weight:700;display:flex}.iot-minute-input input{width:76px;height:40px;color:var(--ink);text-align:center;background:#fff;border:1px solid #b9c9c0;border-radius:10px;padding:0 10px;font-size:15px;font-weight:900}.iot-switch-group{border:0;gap:8px;margin:0;padding:0;display:grid}.iot-switch-group legend{color:var(--ink);margin-bottom:7px;font-size:12px;font-weight:900}.iot-switch-card{border:1px solid var(--line);cursor:pointer;background:#f8faf8;border-radius:14px;grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:12px;padding:13px 14px;display:grid;position:relative}.iot-switch-card:has(input:checked){background:#eef7f1;border-color:#99bda8}.iot-switch-card.safety:has(input:checked){background:#fff7eb;border-color:#e4b27f}.iot-switch-card>span{gap:4px;display:grid}.iot-switch-card strong{font-size:12px}.iot-switch-card small{color:var(--muted);font-size:9px;line-height:1.45}.iot-switch-card input{opacity:0;width:1px;height:1px;position:absolute}.iot-switch-card i{background:#cbd3ce;border-radius:999px;width:42px;height:24px;transition:background .16s;position:relative}.iot-switch-card i:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #243a2d2e}.iot-switch-card input:checked+i{background:var(--brand)}.iot-switch-card.safety input:checked+i{background:#dc7b20}.iot-switch-card input:checked+i:after{transform:translate(18px)}.iot-switch-card input:focus-visible+i{outline-offset:2px;outline:3px solid #176b4a2b}@media (max-width:720px){.space-control-hero{flex-direction:column;align-items:flex-start}.space-control-toolbar label,.iot-space-action-grid,.iot-gateway-create{grid-template-columns:1fr}.iot-space-settings-button{grid-template-columns:42px minmax(0,1fr) 20px}.iot-device-grid{grid-template-columns:1fr}.iot-history-heading{flex-direction:column;align-items:flex-start}.iot-history-controls{width:100%}.iot-history-controls label{flex:1}.iot-history-controls input{width:100%}.iot-ir-profile-selector-grid,.iot-ir-default-grid,.iot-ir-learning-actions,.iot-ir-custom-fields,.iot-settings-form{grid-template-columns:1fr}.iot-settings-form>button{grid-column:1}.iot-live-heading{align-items:flex-start}.iot-automation-flow{grid-template-columns:1fr}.iot-automation-flow i{text-align:center;transform:rotate(90deg)}.iot-gateway-create{grid-template-columns:1fr}.iot-connection-row{grid-template-columns:minmax(0,1fr) auto}.iot-connection-row>span{grid-column:1/-1}.iot-discovery-card{grid-template-columns:1fr}.iot-discovery-device-head{grid-column:1}}.message-hero{background:linear-gradient(135deg,#fff,#edf7ef);justify-content:space-between;align-items:center;gap:18px;display:flex}.message-hero h2{margin-bottom:6px;font-size:20px}.message-hero p:not(.eyebrow){color:var(--muted);margin:0;font-size:12px}.access-instructions-button{white-space:nowrap;flex:none}.access-instructions-sheet{max-width:560px}.access-instructions-sheet textarea{resize:vertical;min-height:168px;line-height:1.65}.access-instructions-sheet .access-method-textarea{min-height:104px}.character-count{color:var(--muted);text-align:right;margin-top:-8px}.message-filter{border:1px solid var(--line);background:#fff;border-radius:15px;grid-template-columns:minmax(0,1fr) 220px auto;align-items:center;gap:8px;margin:14px 0;padding:10px;display:grid}.message-search-field{border:1px solid var(--line);background:#f8faf9;border-radius:11px;align-items:center;gap:8px;min-width:0;height:42px;padding:0 12px;display:flex}.message-search-field:focus-within{background:#fff;border-color:#77aa8b;box-shadow:0 0 0 3px #2b6f4c17}.message-search-field svg{fill:none;width:17px;stroke:var(--muted);stroke-width:2px;flex:none}.message-search-field input{background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:12px}.message-status-select{border:1px solid var(--line);background:#fff;border-radius:11px;align-items:center;gap:8px;height:42px;padding:0 8px 0 12px;display:flex}.message-status-select>span{color:var(--muted);flex:none;font-size:10px;font-weight:900}.message-status-select select{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:11px;font-weight:800}.message-filter-result{min-width:48px;height:32px;color:var(--brand);background:#eef7f1;border-radius:999px;place-items:center;font-size:11px;display:grid}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.message-list{grid-template-columns:1fr 1fr;gap:9px;display:grid}.message-card{border:1px solid var(--line);background:#fff;border-radius:17px;gap:7px;padding:16px;display:grid;position:relative}.message-card.scheduled{background:#fffaf0;border-color:#e5c77c}.message-card.failed{background:#fff6f4;border-color:#e2aaa5}.message-card.fallback_sent{background:#f4f9fd;border-color:#9db9d1}.message-card-head{justify-content:space-between;align-items:center;display:flex}.message-channel,.message-status{border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900}.message-channel.alimtalk{color:#695400;background:#fff2a9}.message-channel.sms{color:#28618c;background:#e3f0fa}.message-status{color:#66716b;background:#edf0ee}.message-status.sent{color:var(--brand);background:#ddf1e5}.message-status.failed{color:#a63429;background:#f8dfdc}.message-status.scheduled{color:#8a5900;background:#fff0cd}.message-card>strong{font-size:14px}.message-card p,.message-card small{color:var(--muted);margin:0;font-size:11px;line-height:1.5}.message-card em{color:#a63429;font-size:9px;font-style:normal}.message-card>button{color:#a63429;background:#fff;border:1px solid #d9a8a3;border-radius:9px;min-height:35px;font-size:10px;font-weight:900}.message-card>.message-cancel-button{color:#a63429;background:#fff8f7;border-color:#d9a8a3}.message-load-more{width:100%;min-height:46px;color:var(--brand);background:#f5faf7;border:1px solid #b9d1c2;border-radius:13px;justify-content:center;align-items:center;gap:9px;margin-top:12px;font-size:11px;font-weight:900;display:flex}.message-load-more:hover{background:#edf7f1;border-color:#7eac90}.message-load-more small{color:var(--muted);font-size:9px;font-weight:700}.message-mode{background:#e7ece8;border-radius:13px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:14px 0;padding:4px;display:grid}.message-mode button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:10px;font-size:12px;font-weight:900}.message-mode button.active{color:var(--brand);background:#fff;box-shadow:0 3px 9px #173f2b16}.template-list{grid-template-columns:1fr 1fr;gap:11px;display:grid}.template-card{border:1px solid var(--line);background:#fff;border-radius:19px;gap:13px;padding:18px;display:grid}.template-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.template-heading>div{gap:4px;display:grid}.template-heading span{font-size:15px;font-weight:900}.template-heading strong{color:var(--muted);font-size:9px}.template-heading>button{background:var(--brand);color:#fff;border:0;border-radius:10px;min-height:36px;padding:0 14px;font-size:11px;font-weight:900}.template-card label{gap:7px;font-size:11px;font-weight:900;display:grid}.template-card textarea{resize:vertical;border:1px solid var(--line);border-radius:12px;outline:none;width:100%;padding:12px;font-size:12px;line-height:1.65}.template-card textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b4a16}.template-variables{flex-wrap:wrap;gap:5px;display:flex}.template-variables button{color:var(--brand);background:#f4f9f5;border:1px solid #b9ccbf;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900}.template-preview{background:#f2f5f3;border-radius:12px;padding:13px}.template-preview span{color:var(--muted);margin-bottom:7px;font-size:9px;font-weight:900;display:block}.template-preview p{white-space:pre-wrap;margin:0;font-size:11px;line-height:1.65}.statement-hero{align-items:flex-start}.statement-list{gap:9px;display:grid}.statement-card{border:1px solid var(--line);background:#fff;border-radius:17px;justify-content:space-between;align-items:center;gap:16px;padding:17px;display:flex}.statement-card>div:first-child{gap:5px;display:grid}.statement-card strong{font-size:13px}.statement-card p,.statement-card small{color:var(--muted);margin:0;font-size:10px}.document-status{width:max-content;color:var(--brand);background:#ddf1e5;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900}.document-status.failed{color:#a63429;background:#f8dfdc}.statement-actions{gap:6px;display:flex}.statement-actions button{min-height:35px;color:var(--brand);background:#fff;border:1px solid #b9ccbf;border-radius:9px;padding:0 10px;font-size:10px;font-weight:900}@media (max-width:900px){.policy-grid,.policy-card,.policy-heading,.policy-heading>div,.policy-list,.policy-list>div,.compact-form,.form-pair,.hours-preset-grid{min-width:0;max-width:100%}.policy-card{padding:16px;overflow:hidden}.policy-heading{gap:8px}.policy-heading h2,.policy-description,.policy-list span,.policy-list small{overflow-wrap:anywhere}.policy-list>div{flex-wrap:wrap}.policy-list>div>span{flex:130px;min-width:0}.policy-list>div>strong{white-space:normal;text-align:right;max-width:100%}.option-actions{margin-left:auto}.compact-form input,.compact-form select,.compact-form button,.form-pair>*{width:100%;max-width:100%}.policy-grid{grid-template-columns:1fr}.policy-card.wide{grid-column:auto}.venue-selector{flex-direction:column;align-items:stretch}.inline-policy-form,.closure-form{grid-template-columns:1fr 1fr}.inline-policy-form button{min-height:41px}.calendar-toolbar{flex-direction:column;align-items:stretch}.calendar-toolbar div{justify-content:space-between}.app-shell:has(.week-calendar){overflow-x:visible}.week-calendar{display:none}.mobile-week-calendar{display:block}.mobile-week-calendar nav{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:12px;display:grid}.mobile-week-calendar nav button{border:1px solid var(--line);min-width:0;min-height:64px;color:var(--ink);background:#fff;border-radius:12px;align-content:center;place-items:center;gap:2px;padding:7px 2px;display:grid}.mobile-week-calendar nav button span{color:var(--muted);font-size:10px}.mobile-week-calendar nav button strong{font-size:15px}.mobile-week-calendar nav button small{text-overflow:ellipsis;white-space:nowrap;color:#d75c56;max-width:100%;font-size:8px;overflow:hidden}.mobile-week-calendar nav button.selected{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 5px 12px #285c392e}.mobile-week-calendar nav button.selected span,.mobile-week-calendar nav button.selected small{color:#fff}.mobile-time-list{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.mobile-time-list>button{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;min-height:56px;color:var(--ink);background:#fff;grid-template-columns:64px 1fr;align-items:center;padding:9px 14px;display:grid}.mobile-time-list>button:last-child{border-bottom:0}.mobile-time-list time{font-size:13px;font-weight:800}.mobile-time-list span{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.mobile-time-list span small{font-size:10px}.mobile-time-list>button.available{color:var(--brand);background:#f7fbf2}.mobile-time-list>button.closed{color:#a0aaa2;background:#f3f5f3}.mobile-time-list>button.booked{color:var(--brand-dark);background:#e5f2ea}.venue-info-heading-actions{flex-direction:column;align-items:flex-end}.venue-info-summary{grid-template-columns:1fr}.venue-info-summary .wide{grid-column:1}.venue-danger-zone{flex-direction:column;align-items:stretch}.venue-danger-zone .state-button{width:100%}.venue-edit-form{grid-template-columns:1fr}.venue-edit-form .wide{grid-column:1}.venue-actions{flex-direction:column-reverse}.venue-actions button{min-height:46px}.month-day{min-height:78px;padding:7px}.month-day>span{margin-top:5px}.month-day>div{margin-top:4px}.month-weekday{padding:9px 2px}.calendar-mode{display:grid}}.message-mode{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:600px){.message-hero{flex-direction:column;align-items:stretch}.message-hero button{width:100%}.message-list,.template-list{grid-template-columns:1fr}.message-filter{grid-template-columns:minmax(0,1fr) auto}.message-search-field{grid-column:1/-1}.message-status-select{min-width:0}.template-card{padding:15px}.statement-card{flex-direction:column;align-items:stretch}.statement-actions button{flex:1;width:auto}}@media (max-width:480px){.detail-grid{grid-template-columns:1fr}.detail-grid .full{grid-column:auto}}@media (max-width:600px){.month-calendar{gap:3px}.month-weekday{padding:7px 1px;font-size:9px}.month-day{border-radius:10px;min-height:74px;padding:6px}.month-day>strong{border-radius:7px;min-width:23px;height:23px;font-size:12px;top:6px;left:6px}.month-day.has-reservations>span{border-radius:6px;margin-top:31px;padding:4px 5px;font-size:8px}.month-day.has-reservations>span em{display:none}.month-day.has-reservations>div{gap:2px;bottom:5px;left:6px;right:6px}.month-day.has-reservations i{border-width:1px;width:5px;height:5px}.month-day>b{margin-top:27px;font-size:7px}}.payment-shell{background:#f1f5f1;min-height:100dvh;padding:24px 16px 60px}.payment-container{width:min(100%,560px);margin:auto}.payment-header{align-items:center;gap:13px;margin:8px 2px 22px;display:flex}.payment-header .payment-logo{margin:0}.payment-header h1{margin:0;font-size:21px}.payment-progress{grid-template-columns:28px 1fr 28px 1fr 28px;align-items:center;margin:0 22px 5px;display:grid}.payment-progress span{color:#89938d;background:#fff;border:1px solid #cfd8d2;border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;font-weight:900;display:grid}.payment-progress span.active{border-color:var(--brand);background:var(--brand);color:#fff}.payment-progress i{background:#dce3de;height:1px}.payment-progress-labels{color:#8a958e;justify-content:space-between;margin:0 14px 19px;font-size:9px;display:flex}.payment-progress-labels b:first-child{color:var(--brand)}.payment-logo{background:var(--brand);width:48px;height:48px;color:var(--lime);border-radius:15px;place-items:center;margin:0 auto 22px;font-size:23px;font-weight:900;display:grid}.payment-eyebrow{color:var(--brand);letter-spacing:.13em;margin:0 0 5px;font-size:10px;font-weight:900}.payment-summary,.payment-section{border:1px solid var(--line);background:#fff;border-radius:22px;padding:21px}.payment-summary{margin-bottom:12px}.payment-summary>p{color:var(--muted);justify-content:space-between;margin-bottom:21px;font-size:11px;display:flex}.payment-summary h2{margin-bottom:9px;font-size:24px}.payment-date{font-size:15px;font-weight:900;line-height:1.5}.payment-summary>small{border-top:1px solid var(--line);color:var(--muted);margin-top:15px;padding-top:14px;font-size:11px;display:block}.payment-form{gap:12px;display:grid}.payment-section-title{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.payment-section-title h2{margin:0;font-size:17px}.payment-section-title>span{color:var(--brand);font-size:10px;font-weight:900}.payment-options{gap:8px;display:grid}.payment-options>label{border:1px solid var(--line);cursor:pointer;border-radius:13px;grid-template-columns:22px 1fr auto;align-items:center;gap:9px;padding:13px;display:grid}.payment-options input,.payment-check input{width:18px;height:18px;accent-color:var(--brand)}.payment-options span{gap:4px;display:grid}.payment-options small{color:var(--muted);font-size:10px}.payment-options b{font-size:12px}.payment-price-section{background:#fbfcfb}.payment-price-breakdown{gap:12px;margin:0;display:grid}.payment-price-breakdown>div{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.payment-price-breakdown dt,.payment-price-breakdown dd{margin:0}.payment-price-breakdown dd{color:var(--ink);font-weight:800}.payment-price-breakdown .total{color:var(--ink);border-top:1px dashed #cdd8d1;margin-top:3px;padding-top:16px;font-weight:900}.payment-price-breakdown .total dd{color:var(--brand);font-size:20px}.payment-methods{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.payment-methods button{border:1px solid var(--line);min-height:116px;color:var(--ink);background:#fff;border-radius:15px;place-items:center;gap:4px;display:grid}.payment-methods button.active{border:2px solid var(--brand);background:#f3faf5;box-shadow:0 0 0 3px #176b4a0d}.payment-methods strong{font-size:12px}.payment-methods small{color:var(--muted);font-size:9px}.method-icon{border-radius:11px;place-items:center;width:34px;height:34px;font-size:15px;font-weight:900;display:grid}.toss-wordmark{color:#3182f6;letter-spacing:-.08em;font-family:Arial,sans-serif;font-size:21px;font-weight:900}.payment-provider-note{background:var(--paper);color:var(--muted);border-radius:11px;margin:14px 0 0;padding:11px 12px;font-size:10px;line-height:1.55}.payment-field{gap:7px;margin-top:12px;font-size:12px;font-weight:900;display:grid}.payment-field input{border:1px solid var(--line);border-radius:13px;outline:none;height:48px;padding:0 13px}.payment-field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b4a18}.payment-check{color:var(--muted);align-items:flex-start;gap:9px;margin-top:16px;font-size:12px;line-height:1.5;display:flex}.payment-check.required{margin:0}.payment-check span{gap:4px;display:grid}.payment-check b{color:var(--brand)}.payment-check small{font-size:10px}.payment-total{justify-content:space-between;align-items:center;padding:18px 5px 4px;display:flex}.payment-total span{font-size:13px;font-weight:800}.payment-total strong{color:var(--brand);font-size:25px}.payment-submit{background:var(--brand);color:#fff;border:0;border-radius:15px;min-height:56px;font-size:16px;font-weight:900;box-shadow:0 9px 20px #176b4a33}.payment-submit:disabled{opacity:.55}.payment-sticky-area{gap:10px;display:grid}.payment-error{color:#ae3128;background:#fff0ed;border-radius:12px;margin:0;padding:12px;font-size:12px;font-weight:800}.mock-notice{text-align:center;color:var(--muted);font-size:10px}.payment-state{text-align:center;border:1px solid var(--line);background:#fff;border-radius:26px;width:min(100%,480px);margin:18vh auto 0;padding:38px 24px}.payment-state h1{font-size:23px}.payment-state p{color:var(--muted);line-height:1.6}.payment-state strong,.payment-state small{margin-top:14px;display:block}.payment-state.success .payment-logo{background:var(--brand)}.payment-complete-icon{width:62px;height:62px;color:var(--brand);background:#e3f3e8;border-radius:50%;place-items:center;margin:0 auto 18px;font-size:29px;font-weight:900;display:grid}.payment-state.error .payment-logo{color:#fff;background:#a43a31}.privacy-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.privacy-detail-button{color:var(--brand);cursor:pointer;background:0 0;border:0;flex:none;font-size:11px;font-weight:900}.privacy-detail-button span{margin-left:2px;font-size:16px;line-height:0;display:inline-block;transform:translateY(1px)}.privacy-details{background:var(--paper);color:var(--ink);border-radius:14px;margin-top:17px;padding:16px}.privacy-details h3{margin:0 0 13px;font-size:14px}.privacy-details dl{gap:12px;margin:0;display:grid}.privacy-details dl>div{gap:4px;display:grid}.privacy-details dt{font-size:11px;font-weight:900}.privacy-details dd,.privacy-details>p{color:var(--muted);margin:0;font-size:10px;line-height:1.65}.privacy-details>p{border-top:1px solid var(--line);margin-top:13px;padding-top:12px}.privacy-confirmed{color:var(--brand);background:#e4f3e9;border-radius:10px;margin:13px 0 0;padding:9px 11px;font-size:11px;font-weight:900}.refund-policy-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#17211db8;align-items:end;padding:16px;display:grid;position:fixed;inset:0}.refund-policy-dialog{background:#fff;border:1px solid #ffffff80;border-radius:24px;flex-direction:column;width:min(100%,520px);max-height:min(88dvh,760px);margin:0 auto;display:flex;overflow:hidden;box-shadow:0 24px 70px #0a17114d}.refund-policy-dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 22px 17px;display:flex}.refund-policy-dialog-header span{color:var(--brand);letter-spacing:.08em;margin-bottom:5px;font-size:10px;font-weight:900;display:block}.refund-policy-dialog-header h2{letter-spacing:-.04em;margin:0;font-size:20px}.refund-policy-close{background:var(--paper);width:34px;height:34px;color:var(--muted);cursor:pointer;border:0;border-radius:50%;flex:0 0 34px;place-items:center;font-size:24px;line-height:1;display:grid}.refund-policy-dialog-body{scrollbar-color:#9eb7aa transparent;scrollbar-width:thin;padding:20px 22px 24px;overflow-y:auto}.refund-policy-dialog-body::-webkit-scrollbar{width:6px}.refund-policy-dialog-body::-webkit-scrollbar-thumb{background:#9eb7aa;border-radius:99px}.refund-policy-intro{color:var(--muted);margin:0 0 16px;font-size:12px;line-height:1.7}.refund-policy-summary{gap:9px;display:grid}.refund-policy-summary article{background:#f6faf7;border:1px solid #dce9e2;border-radius:14px;grid-template-columns:76px 1fr;align-items:center;gap:12px;padding:13px 14px;display:grid}.refund-policy-summary article>span{min-height:29px;color:var(--brand);background:#dff0e6;border-radius:9px;place-items:center;font-size:10px;font-weight:900;display:grid}.refund-policy-summary article:last-child{background:#fff8f6;border-color:#f0ddd9}.refund-policy-summary article:last-child>span{color:#a33f35;background:#f8e5e1}.refund-policy-summary p{color:var(--ink);margin:0;font-size:11px;font-weight:750;line-height:1.55}.refund-policy-detail-list{margin-top:22px}.refund-policy-detail-list h3{margin:0 0 10px;font-size:13px}.refund-policy-detail-list ol{background:var(--paper);border-radius:14px;gap:10px;margin:0;padding:15px 15px 15px 34px;display:grid}.refund-policy-detail-list li{color:var(--muted);padding-left:3px;font-size:11px;line-height:1.65}.refund-policy-version{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;font-size:10px;display:flex}.refund-policy-version small{font-size:inherit}.refund-policy-dialog-footer{padding:14px 22px max(14px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}.refund-policy-dialog-footer button{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:14px;width:100%;min-height:50px;font-size:14px;font-weight:900}@media (min-width:640px){.refund-policy-overlay{align-items:center}}.payment-log-shell{max-width:860px}.payment-log-toolbar{gap:10px;margin:14px 0;display:grid}.payment-log-toolbar form{grid-template-columns:1fr auto;gap:8px;display:grid}.payment-log-toolbar input,.payment-log-toolbar select{border:1px solid var(--line);min-width:0;min-height:44px;color:var(--ink);background:#fff;border-radius:13px;padding:0 13px}.payment-log-count{color:var(--muted);font-size:12px}.payment-log-table{background:0 0;border:0;overflow:visible}.payment-log-table-head{text-align:center;display:none}.payment-log-table-body{gap:7px;display:grid}.payment-log-row{width:100%;color:var(--ink);font:inherit;text-align:center;cursor:pointer;background:#fff;border:1px solid #dfe8e3;border-radius:14px;grid-template-columns:minmax(0,1.15fr) minmax(72px,.8fr) auto;grid-template-areas:"customer attempt amount""stage status date""error error error";align-items:center;gap:9px 10px;padding:13px 13px 12px 17px;display:grid;position:relative;overflow:hidden;box-shadow:0 3px 12px #1d412e0a}.payment-log-row:before{content:"";background:#aab7b0;border-radius:0 3px 3px 0;width:3px;position:absolute;inset:9px auto 9px 0}.payment-log-row.succeeded:before{background:var(--brand)}.payment-log-row.pending_provider:before,.payment-log-row.provider_succeeded:before{background:#d99b24}.payment-log-row.failed:before{background:#d85b4d}.payment-log-row:hover,.payment-log-row:focus-visible{background:#f9fcfa;border-color:#bdd6c8;outline:none;box-shadow:0 5px 16px #1d412e14}.payment-log-customer{grid-area:customer;min-width:0}.payment-log-customer strong,.payment-log-customer small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.payment-log-customer strong{font-size:13px;font-weight:900}.payment-log-customer small{color:var(--muted);margin-top:3px;font-size:9px}.payment-log-date{color:#748078;text-align:center;white-space:nowrap;grid-area:date;justify-self:center;font-size:10px;font-weight:750}.payment-log-stage{grid-area:stage;justify-self:center;min-width:0}.payment-log-stage strong,.payment-log-stage small{display:block}.payment-log-stage strong{color:#426453;text-overflow:ellipsis;white-space:nowrap;background:#eef5f1;border-radius:7px;max-width:100%;padding:4px 7px;font-size:10px;font-weight:850;display:inline-flex;overflow:hidden}.payment-log-stage small{color:#98a29d;text-overflow:ellipsis;white-space:nowrap;max-width:110px;margin-top:3px;font-size:7px;display:block;overflow:hidden}.payment-log-attempt{color:#6f7c75;text-align:center;grid-area:attempt;justify-self:center;font-size:10px;font-weight:800}.payment-log-amount{text-align:center;grid-area:amount;justify-self:center}.payment-log-amount strong,.payment-log-amount small{display:block}.payment-log-amount strong{color:var(--brand);letter-spacing:-.03em;white-space:nowrap;font-size:13px;font-weight:950}.payment-log-amount small{color:#ad4035;margin-top:2px;font-size:9px}.payment-status{color:var(--muted);white-space:nowrap;background:#eef2ef;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900}.payment-log-row .payment-status{background:0 0;grid-area:status;justify-self:center;padding:0 0 0 11px;font-size:10px;position:relative}.payment-log-row .payment-status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.payment-status.paid,.payment-status.succeeded{color:var(--brand);background:#dff2e7}.payment-status.pending_provider,.payment-status.provider_succeeded{color:#8a6426;background:#fff0cb}.payment-status.failed{color:#ad4035;background:#fde8e5}.payment-status.canceled,.payment-status.partially_canceled{color:#8a6426;background:#f4ece1}.payment-log-error{color:#ad4035;background:#fff2f0;border-radius:8px;grid-area:error;margin:4px 0 0;padding:7px 9px;font-size:9px}.payment-log-error strong{margin-right:5px}.payment-log-more{width:100%;margin-top:14px}.payment-log-modal-backdrop{z-index:120;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#121c177a;align-items:end;padding:14px;display:grid;position:fixed;inset:0}.payment-log-modal{background:#fff;border-radius:22px;width:min(100%,620px);max-height:min(86dvh,760px);margin:0 auto;padding:20px;overflow-y:auto;box-shadow:0 24px 70px #12261c3d}.payment-log-modal>header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.payment-log-modal>header h2{margin:4px 0 0;font-size:20px}.payment-log-modal>header>button{background:var(--paper);width:38px;height:38px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;font-size:24px}.payment-log-modal-status{background:#f5f8f6;border-radius:14px;align-items:center;gap:10px;margin:18px 0 14px;padding:12px;display:flex}.payment-log-modal-status strong{font-size:13px}.payment-log-modal dl{border:1px solid var(--line);background:var(--line);border-radius:14px;gap:1px;margin:0;display:grid;overflow:hidden}.payment-log-modal dl div{background:#fff;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:11px 12px;display:grid}.payment-log-modal dt{color:var(--muted);font-size:10px}.payment-log-modal dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:11px;font-weight:750}.payment-log-modal-error{color:#ad4035;background:#fff4f2;border:1px solid #f2cbc6;border-radius:13px;margin-top:14px;padding:12px}.payment-log-modal-error p{margin:5px 0 0;font-size:10px;line-height:1.55}.payment-log-modal-close{width:100%;margin-top:16px}@media (max-width:420px){.payment-log-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"customer amount""stage status""error error"}.payment-log-attempt,.payment-log-date{display:none}}@media (min-width:640px){.payment-log-toolbar{grid-template-columns:1fr 180px}.payment-log-table{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.payment-log-table-body{gap:0}.payment-log-table-head,.payment-log-row{grid-template-columns:minmax(120px,1.15fr) 78px 110px minmax(105px,.9fr) 100px 125px;align-items:center;gap:12px;display:grid}.payment-log-table-head{border-bottom:1px solid var(--line);color:var(--muted);background:#f5f8f6;padding:11px 14px;font-size:9px;font-weight:850}.payment-log-row{border:0;border-bottom:1px solid var(--line);box-shadow:none;border-radius:0;grid-template-areas:none;padding:12px 14px;overflow:visible}.payment-log-row:before{display:none}.payment-log-row:last-child{border-bottom:0}.payment-log-row>*{grid-area:auto}.payment-log-row .payment-status{grid-area:auto;justify-self:center}.payment-log-attempt,.payment-log-amount{text-align:center;justify-self:center}.payment-log-error{grid-column:2/-1}.payment-log-modal-backdrop{align-items:center}}.iot-ir-preset-learning{border-top:1px solid var(--line);gap:10px;padding-top:14px;display:grid}.iot-ir-preset-learning>p{color:var(--muted);margin:0;font-size:.84rem;line-height:1.5}.iot-ir-preset-row{grid-template-columns:48px repeat(3,minmax(0,1fr));align-items:center;gap:8px;display:grid}.iot-ir-preset-row>span{color:var(--ink);font-weight:800}.iot-ir-preset-row button{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--ink);border-radius:12px;font-weight:800}.iot-ir-preset-row button.learned{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
