@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&display=swap";:root{--primary:#4a86e8;--primary-dark:#2c5fc4;--primary-light:#e8f0fe;--color-success:#34a853;--color-warning:#fbbc04;--color-danger:#ea4335;--color-info:#4a86e8;--sidebar-width:220px;--sidebar-bg:#1e2a3a;--sidebar-text:#c8d6e5;--sidebar-active:#4a86e8;--bg:#f0f2f5;--surface:#fff;--border:#e0e4ea;--text:#1a202c;--text-muted:#6b7280;--radius:8px;--shadow:0 1px 4px #0000001a;--shadow-md:0 4px 16px #0000001f}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#0000002e padding-box content-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0000004d padding-box content-box}::-webkit-scrollbar-corner{background:0 0}*{scrollbar-width:thin;scrollbar-color:#0000002e transparent}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);background:var(--bg);font-family:Huninn,Segoe UI,system-ui,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:inherit;border:none;outline:none}input,select,textarea{font-family:inherit;font-size:inherit}.app-layout{height:100vh;display:flex}.app-main{flex:1;padding:24px;position:relative;overflow-y:auto}.page{max-width:1980px;position:relative}.dashboard-refreshing-overlay{z-index:800;background:#fff9;border-radius:8px;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dashboard-refreshing-overlay__card{background:var(--surface,#fff);color:var(--text-primary,#333);border-radius:12px;flex-direction:column;align-items:center;gap:16px;padding:32px 48px;font-size:14px;display:flex;box-shadow:0 4px 20px #0000001a}.dashboard-refreshing-overlay__card p{margin:0}.dashboard-refreshing-overlay__spinner{border:3px solid var(--border,#e0e0e0);border-top-color:var(--primary,#d4a853);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite dash-spin}@keyframes dash-spin{to{transform:rotate(360deg)}}.dashboard-year-loading{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.dashboard-year-loading__spinner{border:2px solid var(--border,#e0e0e0);border-top-color:var(--primary,#d4a853);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite dash-spin}.page__header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page__title{font-size:22px;font-weight:600}.page__actions{justify-content:flex-end;gap:10px;margin-bottom:12px;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);height:100vh;color:var(--sidebar-text);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar__header{border-bottom:1px solid #ffffff14;padding:24px 16px 16px}.sidebar__logo{color:#fff;letter-spacing:1px;align-items:center;gap:8px;font-size:22px;font-weight:700;display:flex}.sidebar__logo-icon{width:28px;height:28px}.sidebar__logo-fi{color:#d4a853}.sidebar__subtitle{color:#ffffffa6;margin-top:2px;font-size:11px}.sidebar__nav{flex-direction:column;flex:1;gap:2px;padding:12px 0;display:flex}.sidebar__nav-item{border-radius:0 var(--radius) var(--radius) 0;color:var(--sidebar-text);align-items:center;gap:10px;margin-right:12px;padding:16px;font-size:16px;transition:background .15s;display:flex}.sidebar__nav-item:hover:not(.sidebar__nav-item--disabled){background:#ffffff14}.sidebar__nav-item--active{background:var(--sidebar-active);color:#fff}.sidebar__nav-item--subscribe{color:#d4a853;border-top:1px solid #ffffff14;margin-top:8px;padding-top:12px}.sidebar__nav-item--subscribe:hover{color:#d4a853;background:#d4a8531f}.sidebar__nav-item--disabled{opacity:.45;cursor:default}.sidebar__nav-badge{background:#ffffff26;border-radius:99px;margin-left:auto;padding:1px 6px;font-size:10px}.sidebar__footer{color:#fff;border-top:1px solid #ffffff0f;flex-direction:column;gap:6px;padding:12px 16px;font-size:11px;display:flex}.sidebar__user-icon{flex-shrink:0;font-size:13px}.sidebar__user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.sidebar__reload-btn{color:#fff6;text-align:center;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:4px;width:100%;padding:5px 0;font-size:11px;transition:color .15s,border-color .15s,background .15s}.sidebar__reload-btn:hover:not(:disabled){color:#fffc;background:#ffffff0d;border-color:#fff6}.sidebar__reload-btn:disabled{cursor:default;opacity:.6}.sidebar__reload-btn--ok{color:#4caf50;border-color:#4caf5066}.sidebar__reload-btn--err{color:#ef5350;border-color:#ef535066}.sidebar__version{color:#fff3;font-size:11px}.sidebar__theme-btn{color:#fff6;text-align:center;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:4px;width:100%;padding:5px 0;font-size:11px;transition:color .15s,border-color .15s,background .15s}.sidebar__theme-btn:hover{color:#fffc;background:#ffffff0d;border-color:#fff6}.sidebar__theme-btn--active{color:var(--sidebar-active);border-color:#4a86e866}.sidebar__user-info{align-items:center;gap:8px;padding:4px 0;display:flex}.sidebar__user-details{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.sidebar__user-role{color:#fff;letter-spacing:.3px;font-size:12px}.sidebar__logout-btn{cursor:pointer;color:#ffffff4d;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:14px;transition:color .15s,background .15s}.sidebar__logout-btn:hover{color:#ef5350;background:#ef535026}.btn{border-radius:var(--radius);white-space:nowrap;align-items:center;gap:6px;padding:8px 18px;font-weight:500;transition:opacity .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-dark)}.btn--secondary{background:var(--border);color:var(--text)}.btn--secondary:hover:not(:disabled){background:#d0d5dd}.btn--tour{aspect-ratio:1;isolation:isolate;border-radius:50%;justify-content:center;min-width:35px;padding:4px 10px;font-size:15px;position:relative}.btn--tour:before{content:"";z-index:-1;will-change:transform, opacity;background:#4a86e866;border-radius:50%;animation:2s ease-in-out infinite tour-btn-pulse;position:absolute;inset:0}.tour-trigger{align-items:center;display:flex;position:relative}.tour-trigger__bubble{color:#555;white-space:nowrap;letter-spacing:.3px;background:#fff;border-radius:16px;margin-right:14px;padding:5px 14px;font-size:12px;font-weight:500;animation:.4s tour-bubble-in;position:relative;box-shadow:0 2px 8px #0000001f}.tour-trigger__bubble:after{content:"";background:#fff;border-radius:2px;width:11px;height:9px;position:absolute;top:47%;right:-3px;transform:translateY(-50%)rotate(45deg);box-shadow:2px -1px 3px #0000000f}@keyframes tour-bubble-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.custom-beacon__outer{opacity:.2;border-radius:50%;width:36px;height:36px;animation:1.2s ease-in-out infinite beacon-pulse;position:absolute}.custom-beacon__inner{border-radius:50%;width:18px;height:18px;position:relative}@keyframes beacon-pulse{0%{opacity:.25;transform:scale(1)}50%{opacity:.08;transform:scale(1.4)}to{opacity:.25;transform:scale(1)}}.custom-beacon:after{content:"點擊開始導覽";color:var(--beacon-color,#ff9800);white-space:nowrap;letter-spacing:.3px;pointer-events:none;font-size:11px;font-weight:600;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}@keyframes tour-btn-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:0;transform:scale(1.5)}}.page__header-actions{align-items:center;gap:8px;display:flex}.btn--sm{padding:10px 12px;font-size:13px}.btn--icon{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:6px;line-height:1;transition:all .15s;display:inline-flex}.btn--icon:hover{background:var(--bg-hover,#f0f0f0);color:var(--primary);border-color:var(--primary)}.btn--outline{border:1px solid var(--primary);color:var(--primary);background:0 0}.btn--outline:hover{background:var(--primary);color:#fff}.btn--outline-fixed{border:1px solid var(--color-warning);color:#b8860b;background:0 0}.btn--outline-fixed:hover{color:#fff;background:#cbb022}.btn--outline-loan{border:1px solid var(--color-success);color:#2e7d32;background:0 0}.btn--outline-loan:hover{background:var(--color-success);color:#fff}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}dialog.modal,.modal{inset:unset;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);border:none;flex-direction:column;width:100%;max-width:450px;max-height:90vh;margin:0;padding:0;display:flex;position:static}.modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal__title{font-size:17px;font-weight:600}.modal__close{color:var(--text-muted);background:0 0;border-radius:4px;padding:2px 6px;font-size:18px;line-height:1}.modal__close:hover{background:var(--border)}.modal__body{flex:1;padding:20px 24px;overflow-y:auto}.modal__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal__footer .meta-timestamps{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:0;padding:8px 14px}.modal--confirm{max-width:320px}.modal--confirm .modal__body{padding:20px 24px}.confirm-message{white-space:pre-line;text-align:left;margin:0;font-size:14px;line-height:1.6}.confirm-details{border-left:3px solid var(--gold,#d4a853);border-radius:0 var(--radius,6px) var(--radius,6px) 0;color:#5e4b32;white-space:pre-line;text-align:left;background:#f7f3ec;margin-top:12px;padding:10px 14px;font-size:13px;line-height:1.7}.modal--confirm .modal__footer{gap:8px}.export-modal{max-width:420px}.export-modal__hint{color:var(--text-muted);margin-top:12px;font-size:12px}.first-login-welcome__overlay{z-index:1200;cursor:default;border:none}.first-login-welcome{max-width:560px;margin:0;position:relative}.first-login-welcome .modal__title{font-size:18px}.first-login-welcome__intro{color:var(--text,#333);margin-bottom:20px;font-size:14px;line-height:1.6}.first-login-welcome__item{background:#f5f2e9;border-radius:10px;gap:14px;margin-bottom:12px;padding:16px;display:flex}.first-login-welcome__item:last-child{margin-bottom:0}.first-login-welcome__item-icon{background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex;box-shadow:0 1px 3px #2c231914}.first-login-welcome__item-body{flex:1;min-width:0}.first-login-welcome__item-title{color:#2d2926;margin-bottom:4px;font-size:14px;font-weight:600}.first-login-welcome__item-desc{color:#5e5954;margin:0;font-size:13px;line-height:1.7}.first-login-welcome__item-desc strong{color:#7d6b3d;font-weight:600}.modal--sm{max-width:520px}.modal--lg{max-width:860px}.modal__subtitle{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.modal--xl{max-width:1060px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px;display:grid}.form-row{gap:14px;display:flex}.form-row .form-group{flex:1}.form-group{flex-direction:column;gap:5px;display:flex}.form-group--full{grid-column:1/-1}.form-label{color:var(--text-muted);font-size:13px;font-weight:500}.form-control{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%;padding:8px 12px;transition:border-color .15s}.form-control:focus{border-color:var(--primary);outline:none}.form-control:disabled,.form-control[readonly]{background:var(--surface-alt,#f5f5f5);color:var(--text-muted);cursor:not-allowed}textarea.form-control{resize:vertical}.form-label__hint{cursor:help;-webkit-user-select:none;user-select:none;margin-left:6px;font-size:11px}.form-help-text{color:var(--text-muted);margin-top:2px;font-size:11px}.form-error{color:var(--color-danger);border-radius:var(--radius);background:#fff3f3;margin-bottom:14px;padding:10px 14px;font-size:13px}.form-error--footer{border-radius:var(--radius) var(--radius);margin-bottom:10px}.form-section{margin-bottom:16px}.form-section+.form-section{border-top:2px dashed #c8cfd8;padding-top:16px}.form-section__title{color:var(--text);margin-bottom:12px;font-size:14px;font-weight:600}.form-section__title--sm{margin-bottom:8px;font-size:13px}.form-section--compact{margin-bottom:12px}.form-section--compact+.form-section--compact{border-top:2px dashed #c8cfd8;padding-top:12px}.form-section .form-grid{margin-bottom:0}.form-status{align-items:center;height:36px;display:flex}.form-section--compact .form-status{height:28px}.stage-config{margin-top:4px}.stage-config__title{margin-bottom:10px;font-size:14px;font-weight:600}.stage-config__hint{color:var(--text-muted);margin:8px 0;font-size:12px}.project-list__toolbar{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.project-list__count{color:var(--text-muted);font-size:13px}.project-list__table-wrap{overflow-x:auto}.table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}.table th{text-align:left;color:var(--text-muted);white-space:nowrap;border-bottom:1px solid var(--border);background:#f7f8fa;padding:10px 14px;font-size:13px;font-weight:600}.table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:10px 14px}.table>tbody>tr:last-child>td{border-bottom:none}.table>tbody>tr:hover>td{background:#fafbff}.table>tbody>tr.table__row--no-hover:hover>td,.table>tbody>tr.table__row--no-hover:nth-child(2n):hover>td{cursor:default;background:0 0!important;transition:none!important}.table__mono{color:var(--text-muted);font-family:monospace;font-size:14px}.table__number{text-align:right;font-variant-numeric:tabular-nums}th.table__number,th.th--right{text-align:right}th.th--center{text-align:center}.table--compact th,.table--compact td{padding:7px 10px}.table__row--clickable{cursor:pointer}.table__row--clickable:hover>td{background:#eef3ff}.table__row--focused>td{animation:1.4s ease-out row-focus-flash;background:#fff8e1!important}@keyframes row-focus-flash{0%{background:#ffeaa7}to{background:#fff8e1}}.table__total-row td{border-top:2px solid var(--border);background:#f7f8fa}.detail-summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.detail-summary__item{background:var(--bg);border-radius:var(--radius);flex-direction:column;gap:4px;padding:12px 16px;display:flex}.detail-summary__label{color:var(--text-muted);font-size:12px}.detail-summary__value{font-size:16px;font-weight:600}.detail-summary__value--cost{color:var(--color-warning)}.detail-summary__value--profit{color:var(--color-success)}.detail-summary__value--loss{color:var(--color-danger)}.detail-summary__value small{margin-left:4px;font-size:12px;font-weight:400}.table>tbody>tr.table__group-header>td{color:var(--text);background:#d5dbe8;border-top:8px solid #f0f2f5;border-bottom:2px solid #bfc7d5;padding:8px 14px;font-size:13px;font-weight:600}.table>tbody>tr.table__group-header:first-child>td{border-top:none}.table>tbody>tr.table__group-header:hover>td{background:#d5dbe8}.th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.th--sortable:hover{color:var(--primary)}.th-sort-btn{all:unset;cursor:pointer;font:inherit;width:100%;text-align:inherit;-webkit-user-select:none;user-select:none;font-weight:600;transition:color .15s}.th-sort-btn:hover{color:var(--primary)}.td-link-btn{all:unset;cursor:pointer;font:inherit;color:var(--primary);font-weight:600}.td-link-btn:hover{text-decoration:underline}.invoice-edit-wrap{border-left:4px solid var(--color-info);background:#e4e9f2;padding:14px 18px 14px 20px}.invoice-edit-wrap .invoice-edit-form{border-radius:var(--radius);background:#f5f7fb;padding:14px}.table__wrap{white-space:normal;word-break:break-word;min-width:120px;max-width:300px}.date-field{display:inline-block;position:relative}.date-field .form-control{cursor:text}.date-field__calendar{z-index:10000;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:264px;padding:10px;box-shadow:0 4px 16px #0000002e}.date-field__cal-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.date-field__cal-nav{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:4px;padding:2px 10px;font-size:16px;line-height:1}.date-field__cal-nav:hover{background:var(--hover)}.date-field__cal-title{align-items:center;gap:2px;font-size:14px;font-weight:600;display:flex}.date-field__cal-link{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:14px;font-weight:600}.date-field__cal-link:hover{background:var(--hover);color:var(--primary)}.date-field__cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-field__cal-wd{color:var(--text-muted);padding:4px 0;font-size:12px;font-weight:500}.date-field__cal-day{cursor:pointer;width:32px;height:32px;color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 auto;font-size:13px;display:flex}.date-field__cal-day:hover:not(.date-field__cal-day--empty){background:var(--hover)}.date-field__cal-day--selected{background:var(--primary)!important;color:#fff!important}.date-field__cal-day--today{outline:1.5px solid var(--primary);outline-offset:-1.5px}.date-field__cal-day--empty{cursor:default}.date-field__cal-grid--4col{grid-template-columns:repeat(4,1fr);gap:6px;padding:4px 0}.date-field__cal-cell{cursor:pointer;height:36px;color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:13px;display:flex}.date-field__cal-cell:hover{background:var(--hover)}.date-field__cal-cell--selected{background:var(--primary)!important;color:#fff!important}.date-field__cal-cell--today:not(.date-field__cal-cell--selected){outline:1.5px solid var(--primary);outline-offset:-1.5px}.date-field__cal-cell--outside{color:var(--text-muted);opacity:.5}.__floater{z-index:10002!important}.tour-blocker{z-index:10000;position:fixed;inset:0}#joyride-tooltip-content ul{margin:0;padding-left:18px;list-style:outside}#joyride-tooltip-content li{margin-bottom:4px}#joyride-tooltip-content li:last-child{margin-bottom:0}.tour-section-menu{flex-wrap:wrap;gap:6px;margin:20px 0;display:flex}.tour-section-menu__btn{cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;padding:5px 14px;font-size:13px;transition:background .15s,border-color .15s}.tour-section-menu__btn:hover{background:#e8e8e8;border-color:#bbb}.tour-welcome-hint{color:#999;white-space:nowrap;font-size:12px;position:absolute;bottom:18px;right:95px}.badge{color:#fff;white-space:nowrap;border-radius:99px;padding:2px 10px;font-size:12px;display:inline-block}.badge--active{background:#34a853}.badge--stopped{background:#9aa0a6}.badge--info{background:#4a86e8}.badge--default{background:#8c8782}.badge--primary{background:var(--primary-color,#8b7355)}.fixed-expense-info{color:#333;background:#e8f0fe;border:1px solid #c6dafc;border-radius:8px;margin-bottom:16px;padding:14px 18px;font-size:13px;line-height:1.6}.fixed-expense-info__title{color:var(--primary-dark);margin-bottom:6px;font-size:14px;font-weight:600}.fixed-expense-info p{margin:4px 0}.fixed-expense-info code{background:#fff;border:1px solid #d0d7e0;border-radius:4px;padding:1px 6px;font-family:Consolas,Monaco,monospace;font-size:12px}.state-message{text-align:center;color:var(--text-muted);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px}.state-message--error{color:var(--color-danger)}.state-message__switch{color:var(--primary);cursor:pointer;background:0 0;border:none;margin-left:12px;padding:0;font-size:14px;text-decoration:underline;display:inline-block}.state-message__switch:hover{color:var(--primary-dark,#1565c0)}.cost-section__header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cost-section__title{font-size:14px;font-weight:600}.cost-section{margin-bottom:20px}.tag{color:var(--primary-dark);background:#e8f0fe;border-radius:4px;padding:2px 8px;font-size:11px;display:inline-block}.tag--personal{color:#e65100;background:#fff3e0}.tag--business{color:#1565c0;background:#e8f0fe}.tag--xs{padding:1px 6px;font-size:10px}.radio-group{gap:20px;display:flex}.radio-label{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.checkbox-inline{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.info-icon{border:1.5px solid var(--text-muted,#8c8782);width:15px;height:15px;color:var(--text-muted,#8c8782);cursor:help;vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;font-size:10px;font-style:normal;font-weight:700;display:inline-flex;position:relative}#info-tooltip{background:var(--text-primary,#2d2926);color:#fff;white-space:normal;pointer-events:none;opacity:0;z-index:10000;border-radius:6px;max-width:260px;padding:8px 12px;font-size:12px;font-weight:400;line-height:1.5;transition:opacity .15s;position:fixed;box-shadow:0 4px 12px #00000026}#info-tooltip.visible{opacity:1}.form-hint{color:var(--text-muted);margin-top:3px;font-size:11px}.page__filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.page__filters select,.page__filters input{width:auto}.year-init-panel{z-index:10;background:var(--bg-card,#fff);border:1px solid var(--border-color,#ddd);white-space:nowrap;border-radius:6px;align-items:center;gap:8px;margin-top:4px;padding:8px 12px;display:flex;position:absolute;top:100%;right:0;box-shadow:0 2px 8px #0000001f}.page__filter-count{color:var(--text-muted);font-size:13px}.page-tabs{border-bottom:2px solid var(--border);gap:0;margin-bottom:16px;display:flex}.page-tabs--inline{border-bottom:none;margin-bottom:0;margin-left:16px;margin-right:auto}.page-tabs__btn{color:var(--text-muted);background:0 0;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 20px;font-weight:500;transition:color .15s,border-color .15s}.page-tabs__btn:hover{color:var(--text)}.page-tabs__btn--active{color:var(--primary);border-bottom-color:var(--primary)}.text--danger{color:var(--color-danger)}.btn-group{gap:6px;display:flex}.invoice-summary{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);gap:100px;margin-bottom:16px;padding:12px 16px;display:flex}.invoice-summary__item{flex-direction:column;gap:2px;display:flex}.invoice-summary__label{color:var(--text-muted);font-size:11px}.invoice-summary__value{font-size:15px;font-weight:600}.invoice-summary__item--success .invoice-summary__value{color:var(--color-success)}.invoice-summary__item--warning .invoice-summary__value{color:var(--color-warning)}.invoice-summary__item--danger .invoice-summary__value{color:var(--color-danger)}.quick-pay-bar{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:16px;padding:8px 16px;display:flex}.quick-pay-bar__label{color:var(--text-muted);margin-right:4px;font-size:13px;font-weight:600}.quick-pay-bar__form{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.quick-pay-bar__form-label{min-width:80px;color:var(--primary-dark);font-size:13px;font-weight:600}.fixed-expense-block{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;margin-bottom:16px;display:flex;overflow:hidden}.fixed-expense-block__summary{gap:12px;padding:10px 16px;display:flex}.fixed-expense-block__card{background:var(--bg);border-radius:var(--radius);flex-direction:row;justify-content:space-between;align-items:center;gap:16px;min-width:160px;padding:6px 16px;display:flex}.fixed-expense-block__card--loan{border-left:2px solid var(--color-success);background:#e8f5e9}.fixed-expense-block__card--loan .fixed-expense-block__value{color:var(--color-success)}.fixed-expense-block__card--total{border-left:2px solid var(--color-warning);background:#fff8e6}.fixed-expense-block__label{color:var(--text-muted);font-size:11px}.fixed-expense-block__value{font-size:14px;font-weight:700}.fixed-expense-block__card--total .fixed-expense-block__value{color:var(--color-warning)}.fixed-expense-block .quick-pay-bar{box-shadow:none;border-top:1px solid var(--border);border-radius:0;margin-bottom:0;padding:10px 16px}.fixed-expense-block .quick-pay-bar__form{box-shadow:none;border-top:1px solid var(--border);background:#f5ede0de;border-radius:0;padding:10px 16px}.filter-group{align-items:center;gap:6px;display:flex}.filter-group--grow{flex:1;min-width:180px}.filter-group--grow input{width:100%}.filter-label{color:var(--text-muted);white-space:nowrap;font-size:12px}.journal-summary{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;gap:10px;margin-bottom:15px;padding:8px 16px;display:flex}.journal-summary__item{background:var(--bg);border-radius:var(--radius);flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-width:160px;padding:4px 14px;display:flex}.journal-summary__item--success{border-left:2px solid var(--color-success)}.journal-summary__item--danger{border-left:2px solid var(--color-danger)}.journal-summary__label{color:var(--text-muted);font-size:12px}.journal-summary__value{font-size:14px;font-weight:600}.journal-summary__item--success .journal-summary__value{color:var(--color-success)}.journal-summary__item--danger .journal-summary__value{color:var(--color-danger)}.journal-list__scroll-container{border-radius:var(--radius);max-height:calc(100vh - 279px);box-shadow:var(--shadow);overflow-y:auto}.journal-list__scroll-container .table{box-shadow:none;border-radius:0;margin-bottom:0;overflow:visible}.journal-list__scroll-container .table thead{z-index:2;position:sticky;top:0}.journal-list__scroll-container .table thead th{box-shadow:0 1px 0 var(--border-color);background:#f7f8fa}.journal-list__count{color:var(--text-muted);text-align:right;padding:8px 14px;font-size:13px}.bank-logo{vertical-align:middle;object-fit:contain;border-radius:4px;flex-shrink:0;display:inline-block}.bank-logo--fallback{text-align:center;-webkit-user-select:none;user-select:none;border-radius:50%;font-weight:600}.bank-name-with-logo{align-items:center;gap:6px;display:inline-flex}td .bank-name-with-logo{justify-content:center}.bank-account-list__hint{color:#333;background:#e8f0fe;border:1px solid #c6dafc;border-radius:8px;margin-bottom:12px;padding:12px 16px;font-size:13px;line-height:1.6}td .form-hint{text-align:left}td .form-hint--center{text-align:center}.link--clickable{color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .15s}.link--clickable:hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary)}.pagination{justify-content:center;align-items:center;gap:4px;margin-top:16px;display:flex}.pagination__btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:32px;height:32px;color:var(--text);cursor:pointer;padding:0 8px;font-size:13px;transition:background .15s,border-color .15s}.pagination__btn:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary)}.pagination__btn--active{background:var(--primary);border-color:var(--primary);color:#fff}.pagination__btn:disabled{opacity:.4;cursor:default}.form-control--readonly{background:var(--bg);cursor:default;border-color:#0000;align-items:center;display:flex}.form-control--placeholder{color:var(--text-secondary)}.table__row--editing td{background:#f0f4fa}.currency-hint{color:var(--color-success);font-weight:500}.table__sub{color:var(--text-muted);margin-top:2px;font-size:11px}.detail-summary__sub{color:var(--text-muted);margin-top:2px;font-size:11px;font-weight:400;display:block}.invoice-edit-form{padding:12px 4px}.invoice-edit-form__grid{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:10px;display:grid}.invoice-edit-form__actions{justify-content:flex-end;gap:8px;display:flex}.invoice-edit-form__footer{justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;display:flex}.invoice-edit-form__footer .meta-timestamps{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:0;padding:8px 14px}.attachment-field{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attachment-field__name{color:var(--text-primary);align-items:center;font-size:13px;display:flex}.payment-detail{border-top:1px solid var(--border);background:#f5f7fb;padding:14px 18px 14px 32px}.payment-detail__empty{text-align:center;color:var(--text-muted);padding:16px 0;font-size:13px}.payment-detail .th--date,.payment-detail .td--date{width:130px}.payment-detail .th--amount,.payment-detail .td--amount{width:90px}.payment-detail__form{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:12px;display:flex}.payment-detail__form .form-label{margin-right:4px}.payment-detail__form .form-control{width:140px}.payment-detail__form .date-field .form-control{width:160px}.outsource-expand{border-left:4px solid var(--primary);background:#e4e9f2;padding:0 0 0 20px}.outsource-expand .payment-detail{background:#fafafa;border-top:none;padding:14px 18px 14px 16px}.outsource-expand .payment-detail .table--compact{background:#fafbfe}.outsource-expand .payment-detail .table__row--editing td{background:#fff}.outsource-edit-wrap{border-left:4px solid var(--color-warning);background:#e4e9f2;padding:14px 18px 14px 20px}.outsource-edit-wrap .invoice-edit-form{border-radius:var(--radius);background:#f5f7fb;padding:14px}.meta-timestamps{color:var(--text-muted);gap:24px;margin-top:10px;font-size:10px;display:flex}.meta-timestamps span{align-items:center;gap:4px;display:inline-flex}.meta-timestamps--inline{color:var(--text-muted);white-space:nowrap;font-size:11px}.meta-timestamps--inline span{display:block}.meta-timestamps--inline span+span{margin-top:2px}.project-edit-section{background:var(--bg);border-radius:var(--radius);margin-bottom:20px;padding:16px}.project-edit-section .form-grid{margin-bottom:12px}.detail-fields{border-radius:var(--radius);background:#f9fafb;padding:16px}.detail-fields__grid{grid-template-columns:1fr 1fr;gap:12px 24px;display:grid}.detail-fields__item{flex-direction:column;gap:2px;display:flex}.detail-fields__item--full{grid-column:span 2}.detail-fields__label{color:var(--text-muted);font-size:12px}.detail-fields__value{color:var(--text);font-size:14px}.autocomplete-wrap{position:relative}.autocomplete-dropdown{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:200px;box-shadow:var(--shadow-md);margin:2px 0 0;padding:4px 0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.autocomplete-dropdown--split{grid-template-columns:3fr 2fr;max-height:260px;padding:0;display:grid;overflow:hidden}.autocomplete-dropdown__col{flex-direction:column;min-width:0;max-height:260px;display:flex}.autocomplete-dropdown__col:first-child{border-right:1px solid var(--border)}.autocomplete-dropdown__col-header{color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-subtle,#f8f9fa);flex-shrink:0;padding:6px 10px;font-size:11px;font-weight:600}.autocomplete-dropdown__col-list{flex:1;min-height:0;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.autocomplete-dropdown__empty{color:var(--text-muted);padding:8px 12px;font-size:12px}.autocomplete-dropdown__item{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;align-items:center;gap:8px;padding:6px 12px;font-family:inherit;font-size:13px;display:flex}.autocomplete-dropdown__item:hover,.autocomplete-dropdown__item--active{background:var(--primary-light)}.autocomplete-dropdown__name{font-weight:500}.autocomplete-dropdown__sub{color:var(--text-muted);font-size:12px}.progress-bar{background:#e9ecef;border-radius:10px;min-width:100px;height:20px;position:relative;overflow:hidden}.progress-bar__fill{background:var(--primary);border-radius:10px;height:100%;transition:width .3s}.progress-bar__label{color:#333;text-shadow:0 0 3px #fff9;font-size:11px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.login-page{justify-content:center;align-items:center;min-height:100vh;transition:background .4s;display:flex;position:relative;overflow:hidden}.login-card{z-index:2;text-align:center;transition:all .4s;position:relative}.login-logo{margin:0 0 4px;transition:all .3s}.login-subtitle{letter-spacing:2px;margin:0 0 24px;font-size:.875rem;transition:color .3s}.login-divider{border:none;border-top:1px solid var(--border);margin:0 0 24px}.login-hint{margin:0 0 20px;font-size:.875rem;transition:color .3s}.login-btn-wrapper{justify-content:center;margin-bottom:16px;display:flex}.google-login-btn{color:#3c4043;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:4px;align-items:center;gap:10px;padding:10px 22px;font-family:Roboto,Noto Sans TC,sans-serif;font-size:14px;font-weight:500;transition:background .2s,box-shadow .2s;display:inline-flex}.google-login-btn:hover{background:#f8f9fa;box-shadow:0 1px 3px #3c404326}.google-login-btn:active{background:#f1f3f4}.google-login-btn--pill{color:#fff;background:#1a73e8;border-color:#1a73e8;border-radius:999px;padding:12px 28px}.google-login-btn--pill:hover{background:#1765cc}.google-login-btn--pill:active{background:#14579e}.login-error{color:var(--color-danger);background:#ea433514;border-radius:6px;margin:0;padding:8px 12px;font-size:.85rem}.login-footer{opacity:.5;margin-top:24px;font-size:11px;transition:color .3s}.login-pill{background:var(--bg);color:var(--text-muted);border-radius:9999px;align-items:center;gap:6px;margin-bottom:24px;padding:6px 14px;font-size:12px;display:inline-flex}.login-theme-switcher{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-radius:9999px;gap:6px;padding:4px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #0000001a}.login-theme-btn{color:var(--text-muted);background:0 0;border-radius:9999px;padding:6px 16px;font-size:12px;font-weight:500;transition:all .25s}.login-theme-btn:hover{color:var(--text);background:#0000000a}.login-theme-btn--active{background:var(--primary);color:#fff}.login-theme-btn--active:hover{background:var(--primary-dark);color:#fff}.login-page--bento{background:var(--bg)}.login-page--bento .login-card{background:var(--surface);border-radius:24px;width:400px;padding:48px 44px 40px;box-shadow:0 1px 2px #0000000a}.login-page--bento .login-logo{color:var(--primary);font-family:Inter,system-ui,sans-serif;font-size:2rem;font-weight:700}.login-page--bento .login-subtitle{color:#888}.login-page--bento .login-hint{color:#888;font-size:13px}.login-page--bento .login-footer{color:#888}.login-divider--bento{border:none;border-top:1px solid #e0e4ea;width:60px;margin:12px auto 16px}.login-bento-icon{z-index:1;pointer-events:none;flex-direction:column;align-items:center;gap:4px;transition:opacity .4s;display:flex;position:absolute}.login-bento-icon__emoji{line-height:1}.login-bento-icon__label{color:var(--primary);white-space:nowrap;opacity:.8;font-weight:500}.login-page--artisan{background-color:#0d1525}.login-artisan__bg{object-fit:cover;z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.login-artisan__overlay{opacity:.6;z-index:0;pointer-events:none;background:radial-gradient(#0000 0%,#0d152580 100%);position:absolute;inset:0}.login-page--artisan .login-card{background:var(--surface);border-radius:16px;width:420px;padding:48px 48px 40px;box-shadow:0 8px 40px #0000004d,0 2px 8px #00000026}.login-page--artisan .login-logo{color:var(--primary);letter-spacing:2px;font-family:Playfair Display,Georgia,serif;font-size:2.5rem;font-weight:700}.login-page--artisan .login-subtitle,.login-page--artisan .login-hint,.login-page--artisan .login-footer{color:var(--text-muted)}.login-page--artisan .login-divider{border-top:1px solid var(--border);width:48px;margin:0 auto 24px}.login-artisan__label{z-index:1;letter-spacing:3px;pointer-events:none;font-size:10px;font-weight:500;position:absolute}.login-artisan__label--tl{color:#ffffff59;top:32px;left:40px}.login-artisan__label--br{color:#ffffff40;bottom:32px;right:40px}.login-page--heritage{background:#2c2319;flex-direction:row;justify-content:flex-start;align-items:stretch;height:100vh;min-height:100vh;display:flex;overflow:visible}.heritage-left{background:linear-gradient(#2c2319 0%,#3d3425 100%);flex-direction:column;flex:1;justify-content:space-between;padding:60px 100px;display:flex;position:relative;overflow:hidden}.heritage-left__logo{align-items:center;gap:0;font-family:Playfair Display,Georgia,serif;font-size:24px;font-weight:700;display:flex}.heritage-left__logo svg{margin-right:10px}.heritage-left__logo-pro{color:#fff}.heritage-left__logo-fi{color:#d4a853}.heritage-left__mid{z-index:1;flex-direction:column;gap:28px;max-width:500px;display:flex;position:relative}.heritage-left__headline{color:#fff;margin:0;font-family:Playfair Display,Georgia,serif;font-size:50px;font-weight:700;line-height:1.3}.heritage-left__desc{color:#c4b5a0;margin:0;font-size:18px;line-height:1.7}.heritage-left__features{flex-direction:column;gap:20px;display:flex}.heritage-feat{align-items:center;gap:14px;display:flex}.heritage-feat__icon{background:#d4a85326;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.heritage-feat__text{flex-direction:column;gap:6px;display:flex}.heritage-feat__text strong{color:#fff;font-size:16px;font-weight:500}.heritage-feat__text span{color:#dab689;font-size:13px}.heritage-left__footer{color:#5e5954;font-size:12px}.heritage-left__glow{pointer-events:none;background:radial-gradient(circle,#d4a85314 0%,#0000 70%);border-radius:50%;width:400px;height:400px;position:absolute;bottom:-100px;right:-100px}.heritage-mock-img{pointer-events:none;border-radius:20px;width:56%;max-width:540px;position:absolute;top:41%;left:43%;transform:translateY(-46%)}.heritage-right{background:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40%;min-width:500px;max-width:750px;padding:40px 56px;display:flex;overflow-y:auto}.heritage-right__card{text-align:center;width:100%;max-width:360px}.login-heritage-logo{flex-direction:column;align-items:center;gap:8px;margin-bottom:4px;display:flex}.login-logo--heritage{background:0 0;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset;justify-content:center;align-items:center;gap:4px;margin:0;font-family:Playfair Display,Georgia,serif;font-size:1.75rem;font-weight:700;display:flex}.login-page--heritage .login-logo__pro{color:#2c2319}.login-page--heritage .login-logo__fi{color:#d4a853}.login-page--heritage .login-subtitle{color:#6b5340;letter-spacing:3px;margin:0 0 32px;font-size:13px}.login-page--heritage .login-hint{color:#6b5d4f;margin:0 0 24px;font-size:13px}.login-page--heritage .login-btn-wrapper{margin-bottom:28px}.login-page--heritage .login-footer{color:#6b5340;margin-top:32px}.login-page--heritage .login-pill--heritage{color:#4d3c27;background:#f0e6d2;margin-bottom:28px}.login-page--heritage .login-error{color:#ea4335;background:#ea433514}.login-divider--heritage{border:none;border-top:1px solid #f0e6d2;width:60px;margin:0 auto 20px}.heritage-right__register{color:#6b5340;margin:0 0 8px;font-size:13px}.heritage-right__register a{color:#d4a853;margin-left:4px;font-weight:600;text-decoration:none}.heritage-right__register a:hover{text-decoration:underline}.login-page--heritage .login-theme-switcher{background:#ffffffeb;box-shadow:0 2px 12px #2c231914}.login-page--heritage .login-theme-btn--active{color:#fff;background:#d4a853}.login-page--heritage .login-theme-btn--active:hover{color:#fff;background:#c49a48}@media (width<=1700px){.heritage-left{padding:48px 64px}.heritage-left__headline{font-size:42px}.heritage-left__desc{font-size:16px}.heritage-left__mid{gap:24px;max-width:420px}.heritage-left__features{gap:16px}.heritage-feat__icon{width:36px;height:36px}.heritage-feat__text strong{font-size:14px}.heritage-feat__text span{font-size:12px}.heritage-mock-img{width:50%;max-width:460px}}@media (width<=1400px){.heritage-left{padding:40px 48px}.heritage-left__headline{font-size:36px}.heritage-left__desc{font-size:15px}.heritage-left__mid{gap:20px;max-width:360px}.heritage-feat__icon{border-radius:8px;width:32px;height:32px}.heritage-feat__icon svg{width:16px;height:16px}.heritage-feat{gap:10px}.heritage-feat__text strong{font-size:13px}.heritage-feat__text span{font-size:11px}.heritage-mock-img{width:46%;max-width:400px;left:46%}.heritage-right{min-width:420px}}@media (width<=1100px){.heritage-left{padding:32px 36px}.heritage-left__logo{font-size:20px}.heritage-left__headline{font-size:30px}.heritage-left__desc{font-size:14px}.heritage-left__mid{gap:16px;max-width:300px}.heritage-left__features{gap:12px}.heritage-mock-img{width:44%;max-width:360px;top:44%;left:48%}.heritage-right{min-width:380px}}@media (width<=900px){.login-page--heritage{background:#fff;flex-direction:column}.heritage-left{display:none}.heritage-right{width:100%;min-width:unset;max-width:unset;min-height:100vh;padding:40px 24px}.heritage-right__card{max-width:360px}}.subscription-page{background:#f5f7fa;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.subscription-page__container{width:100%;max-width:800px}.subscription-page__header{text-align:center;margin-bottom:32px}.subscription-page__header h1{color:#333;margin:0 0 8px;font-size:28px}.subscription-page__expired-notice{color:var(--color-danger);font-size:14px}.subscription-page__error{color:var(--color-danger);text-align:center;background:#fdecea;border-radius:8px;margin-bottom:20px;padding:12px 16px}.subscription-page__loading{text-align:center;color:#888;font-size:16px}.subscription-plans{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-bottom:32px;display:grid}.subscription-plan{text-align:center;background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:32px 24px;transition:border-color .2s,box-shadow .2s;position:relative}.subscription-plan:hover{border-color:var(--primary);box-shadow:0 4px 16px #4a86e81f}.subscription-plan--recommended{border-color:var(--primary);box-shadow:0 4px 20px #4a86e826}.subscription-plan__badge{background:var(--primary);color:#fff;border-radius:20px;padding:4px 16px;font-size:12px;font-weight:600;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.subscription-plan__name{color:#555;margin:0 0 16px;font-size:18px}.subscription-plan__price{margin-bottom:8px}.subscription-plan__currency{color:#888;vertical-align:super;font-size:16px}.subscription-plan__amount{color:#333;font-size:42px;font-weight:700}.subscription-plan__period{color:#888;font-size:14px}.subscription-plan__savings{color:var(--color-success);margin-bottom:16px;font-size:13px}.subscription-plan__features{text-align:left;margin:20px 0;padding:0;list-style:none}.subscription-plan__features li{color:#555;padding:6px 0;font-size:14px}.subscription-plan__features li:before{content:"✓";color:var(--color-success);margin-right:8px;font-weight:700}.subscription-plan__btn{border-radius:8px;justify-content:center;width:100%;margin-top:8px;padding:12px;font-size:15px}.subscription-plan__extend{color:#6b5d4f;text-align:center;background:#f5f2e9;border:1px solid #e8dcc8;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:12px;line-height:1.6}.subscription-plan__extend strong{color:#7d6b3d;font-size:14px}.subscription-current{background:#fff;border:1px solid #e8dcc8;border-radius:12px;margin-bottom:32px;padding:24px 28px;box-shadow:0 2px 12px #2c23190a}.subscription-current__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.subscription-current__badge{color:#fff;letter-spacing:.3px;background:#7d6b3d;border-radius:999px;padding:4px 14px;font-size:12px;font-weight:600}.subscription-current__status{color:#3a7d44;background:#edf6ef;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600}.subscription-current__body{border-bottom:1px solid #f0eadf;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:16px;padding-bottom:16px;display:flex}.subscription-current__plan{color:#2d2926;text-align:center;flex-shrink:0;min-width:84px;font-family:Playfair Display,Georgia,serif;font-size:24px;font-weight:700}.subscription-current__rows{flex-direction:column;flex:1;gap:8px;min-width:260px;padding-left:24px;display:flex}.subscription-current__row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.subscription-current__label{color:#8c8782}.subscription-current__value{color:#2d2926;font-weight:600}.subscription-current__value code{color:#7d6b3d;background:#f5f2e9;border-radius:4px;padding:2px 8px;font-family:SF Mono,Consolas,monospace;font-size:12px}.subscription-current__note{color:#5e5954;margin:0;font-size:13px;line-height:1.7}.subscription-current__note strong{color:#7d6b3d;font-weight:600}.subscription-current__note--hint{color:#6b6054;background:#fdf8ef;border:1px solid #e8dcc8;border-radius:6px;margin-top:8px;padding:10px 14px;font-size:12px}.subscription-page__payment-info{text-align:center;background:#fff;border-radius:12px;margin-bottom:32px;padding:24px}.subscription-page__footer-actions{justify-content:center;margin-top:24px;display:flex}.subscription-page__footer-actions .btn{padding:10px 28px;font-size:14px}.subscription-checkout{grid-template-columns:1fr 380px;gap:24px;margin-bottom:24px;display:grid}@media (width<=860px){.subscription-checkout{grid-template-columns:1fr}}.subscription-checkout__left,.subscription-checkout__right{flex-direction:column;gap:20px;display:flex}.subscription-checkout__section h3{color:var(--text-primary,#3c3226);margin:0 0 12px;font-size:16px}.subscription-checkout__plan-card{background:var(--bg-highlight,#faf6f0);border:1px solid var(--border-color,#e0d6c8);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:16px 20px;display:flex}.subscription-checkout__plan-name{color:var(--text-primary,#3c3226);font-size:16px;font-weight:600}.subscription-checkout__plan-price{color:var(--color-primary,#7c6a5b);font-size:20px;font-weight:700}.subscription-method__header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.subscription-method__header h3{margin:0;font-size:16px}.subscription-method__grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.subscription-method__item{border:2px solid var(--border-color,#e0d6c8);background:var(--card-bg,#fff);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;transition:border-color .2s,box-shadow .2s;display:flex}.subscription-method__item:hover{border-color:var(--primary-color,#8b7355);box-shadow:0 2px 8px #8b73551f}.subscription-method__item--selected{border-color:var(--primary-color,#8b7355);background:var(--bg-highlight,#faf6f0);box-shadow:0 2px 12px #8b73552e}.subscription-method__item--disabled{opacity:.45;cursor:not-allowed}.subscription-method__item--disabled .subscription-method__desc{color:#e53935;font-size:11px}.subscription-method__icon{color:var(--primary-color,#8b7355);flex-shrink:0}.subscription-method__label{color:var(--text-primary,#3c3226);font-size:13px;font-weight:600}.subscription-method__desc{color:var(--text-secondary,#8a7f72);font-size:11px;line-height:1.3}.subscription-invoice{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e0d6c8);border-radius:10px;padding:16px 20px}.subscription-invoice__title{color:var(--text-primary,#3c3226);margin:0 0 12px;font-size:15px}.subscription-invoice__type{gap:20px;margin-bottom:12px;display:flex}.subscription-invoice__radio{color:var(--text-primary,#3c3226);cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.subscription-invoice__radio input[type=radio]{accent-color:var(--color-primary,#7c6a5b)}.subscription-invoice__fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.subscription-invoice__fields--stack{grid-template-columns:1fr}.subscription-invoice__field{flex-direction:column;gap:4px;display:flex}.subscription-invoice__field label{color:var(--text-secondary,#8a7f72);font-size:12px;font-weight:500}.subscription-invoice__field input{border:1px solid var(--border-color,#d0d0d0);color:var(--text-primary,#333);background:var(--bg-primary,#fff);border-radius:6px;padding:8px 10px;font-size:14px;transition:border-color .2s}.subscription-invoice__field input:focus{border-color:var(--color-primary,#7c6a5b);outline:none}.subscription-method__confirm{background:var(--bg-highlight,#faf6f0);border:1px solid var(--border-color,#e0d6c8);border-radius:10px;flex-direction:column;gap:16px;padding:20px;display:flex}.subscription-method__confirm-title{color:var(--text-primary,#3c3226);margin:0;font-size:15px;font-weight:600}.subscription-method__confirm-details{flex-direction:column;gap:10px;display:flex}.subscription-method__confirm-item{justify-content:space-between;align-items:baseline;display:flex}.subscription-method__confirm-label{color:var(--text-secondary,#8a7f72);font-size:13px}.subscription-method__confirm-value{color:var(--text-primary,#3c3226);font-size:14px;font-weight:600}.subscription-method__confirm-value--amount{color:var(--color-primary,#7c6a5b);font-size:18px}.subscription-method__confirm .btn--block{justify-content:center;align-items:center;width:60%;margin:4px auto 0;padding:8px 16px;font-size:14px;display:flex}.subscription-page__payment-info h3{color:#333;margin:0 0 8px}.subscription-page__payment-info p{color:#666;margin:0;font-size:14px}.subscription-result{text-align:center;background:#fff;border-radius:12px;padding:40px}.subscription-result__icon{width:64px;height:64px;color:var(--color-success);background:#e8f5e9;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:32px;display:flex}.subscription-result h2{color:#333;margin:0 0 12px}.subscription-result p{margin:0 0 6px;line-height:1.7}.subscription-result__info{text-align:left;background:#f5f7fa;border-radius:8px;margin:20px 0;padding:20px}.subscription-result__row{border-bottom:1px solid #eee;justify-content:space-between;padding:8px 0;display:flex}.subscription-result__row:last-child{border-bottom:none}.subscription-result__row code{background:#e8f5e9;border-radius:4px;padding:2px 8px;font-family:monospace}.subscription-result__note{color:#888;font-size:13px}.subscription-result__warning{color:#e65100;background:#fff3e0;border-left:4px solid #ff9800;border-radius:6px;margin:12px 0;padding:12px 16px;font-size:13px}.subscription-result__actions{justify-content:center;gap:12px;margin-top:20px;display:flex}.subscription-result__account-form{border-top:1px solid #e0e0e0;flex-direction:column;gap:16px;margin-top:20px;padding-top:20px;display:flex}.subscription-result__field{text-align:left;flex-direction:column;gap:6px;display:flex}.subscription-result__label{color:#555;font-size:13px;font-weight:600;display:block}.subscription-result__input{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.subscription-result__input:focus{border-color:var(--primary,#4a86e8);outline:none;box-shadow:0 0 0 3px #4a86e81f}.subscription-result__submit{padding:10px 32px;font-size:14px}.onboarding-page{background:#f5f2e9;justify-content:center;align-items:flex-start;min-height:100vh;padding:60px 20px;font-family:Inter,PingFang TC,Microsoft JhengHei,sans-serif;display:flex}.onboarding-page__container{background:#fff;border-radius:12px;width:100%;max-width:720px;padding:40px 48px;box-shadow:0 1px 3px #2c23190f,0 8px 24px #2c23190a}.onboarding-page__top-bar{border-bottom:1px solid #f0e6d2;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;display:flex}.onboarding-page__logo-group{align-items:center;gap:6px;display:flex}.onboarding-page__logo-pro,.onboarding-page__logo-fi{font-family:Playfair Display,serif;font-size:20px;font-weight:700}.onboarding-page__logo-pro{color:#2d2926}.onboarding-page__logo-fi{color:#d4a853}.onboarding-page__top-actions{flex-shrink:0;gap:8px;display:flex}.onboarding-page__top-actions .btn{color:#5e5954;background:#e8e4d8;border:none;border-radius:6px;font-size:13px;font-weight:500}.onboarding-page__top-actions .btn:hover{background:#dcd8cb}.onboarding-page__header{margin-bottom:28px}.onboarding-page__title{color:#2d2926;margin:0 0 4px;font-family:Playfair Display,serif;font-size:28px;font-weight:700}.onboarding-page__subtitle{color:#8c8782;margin:0;font-size:14px}.onboarding-page__loading{text-align:center;color:#8c8782;padding-top:100px;font-size:16px}.onboarding-page__error{color:#e53935;text-align:center;background:#fdecea;border-radius:8px;margin-bottom:20px;padding:12px 16px;font-size:14px}.onboarding-stepper{margin-bottom:32px}.onboarding-stepper__circles{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.onboarding-stepper__item{flex-direction:column;flex:1 1 0;align-items:center;gap:8px;width:0;transition:opacity .2s;display:flex}.onboarding-stepper__circle{color:#8c8782;background:#e8e4d8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:600;transition:background .2s,color .2s;display:flex}.onboarding-stepper__item--active .onboarding-stepper__circle{color:#fff;background:#7d6b3d;font-weight:700}.onboarding-stepper__item--done .onboarding-stepper__circle{color:#fff;background:#7d6b3d}.onboarding-stepper__label{color:#8c8782;text-align:center;word-break:keep-all;width:100%;font-size:11px;font-weight:500;line-height:1.3}.onboarding-stepper__item--active .onboarding-stepper__label{color:#7d6b3d;font-weight:600}.onboarding-stepper__item--done .onboarding-stepper__label{color:#7d6b3d;font-weight:500}.onboarding-stepper__bar{background:#e8e4d8;border-radius:9999px;width:100%;height:6px;overflow:hidden}.onboarding-stepper__bar-fill{background:linear-gradient(90deg,#7d6b3d,#a08c5a);border-radius:9999px;min-width:6px;height:100%;transition:width .4s}.onboarding-stepper__progress-text{text-align:right;color:#8c8782;margin-top:4px;font-size:11px;font-weight:500}.onboarding-content{padding:0}.onboarding-step h2{color:#2d2926;margin:0 0 20px;font-family:Playfair Display,serif;font-size:22px;font-weight:700}.onboarding-step__instructions{background:#f5f2e9;border-radius:8px;margin-bottom:24px;padding:20px}.onboarding-step__instructions ol,.onboarding-step__instructions ul{margin:8px 0;padding-left:24px}.onboarding-step__instructions li{color:#2d2926;padding:4px 0;font-size:14px;line-height:1.6}.onboarding-step__instructions li::marker{color:#7d6b3d;font-weight:600}.onboarding-step__instructions p{color:#5e5954;margin:0 0 12px;font-size:14px}.onboarding-step__instructions strong{color:#2d2926}.onboarding-step__instructions a{color:#7d6b3d;text-underline-offset:2px;font-weight:500;text-decoration:underline}.onboarding-step__instructions a[target=_blank]:after{content:" ↗";font-size:11px;text-decoration:none;display:inline}.onboarding-step__instructions a:hover{color:#5e4d2a}.onboarding-step__instructions code{color:#7d6b3d;background:#e8e4d8;border-radius:4px;padding:6px;font-size:13px}.onboarding-step__links{flex-wrap:wrap;gap:16px;margin-top:12px;display:flex}.onboarding-step__links a{color:#7d6b3d;text-underline-offset:2px;font-size:13px;font-weight:500;text-decoration:underline}.onboarding-step__links a:after{content:" ↗";font-size:11px}.onboarding-step__links a:hover{color:#5e4d2a}.onboarding-step__actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.onboarding-step__actions .btn--primary{background:#7d6b3d;border-color:#7d6b3d}.onboarding-step__actions .btn--primary:hover{background:#6b5a32}.onboarding-step__actions .btn--secondary{color:#5e5954;background:0 0;border:1px solid #dcd8cb}.onboarding-step__note{color:#8c8782;text-align:center;margin-top:16px;font-size:12px}.onboarding-step__sa-info{margin-top:8px}.onboarding-step__sa-info code{color:#7d6b3d;background:#f5f2e9;border-radius:4px;padding:2px 8px;font-size:12px}.onboarding-step__security{background:#f0f7f0;border:1px solid #c8e6c9;border-radius:10px;margin-bottom:20px;padding:18px 22px}.onboarding-step__security h4{color:#2e7d32;margin:0 0 8px;font-size:13px;font-weight:600}.onboarding-step__security h4:nth-of-type(2){margin-top:14px}.onboarding-step__security ul{flex-direction:column;gap:5px;margin:0 0 2px;padding:0;list-style:none;display:flex}.onboarding-step__security ul li{color:#3d3425;padding-left:18px;font-size:13px;line-height:1.6;position:relative}.onboarding-step__security ul li:before{content:"✓";color:#4caf50;font-size:12px;font-weight:700;position:absolute;left:0}.onboarding-step__security ul li a{color:#2e7d32;text-underline-offset:2px;font-weight:500;text-decoration:underline}.onboarding-step__security ul li a[target=_blank]:after{content:" ↗";font-size:11px}.onboarding-step__security ul li a:hover{color:#1b5e20}.onboarding-step__screenshots{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px;display:grid}.onboarding-step__figure{cursor:pointer;background:#fafaf7;border:1px solid #e8e4d8;border-radius:8px;flex-direction:column;margin:0;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden}.onboarding-step__figure:hover{transform:translateY(-1px);box-shadow:0 4px 16px #2c23191a}.onboarding-step__figure img{object-fit:cover;flex:1;width:100%;min-height:0;display:block}.onboarding-step__figure figcaption{color:#8c8782;text-align:center;background:#fff;border-top:1px solid #f0e6d2;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex}.onboarding-step__figure figcaption:after{content:"🔍";opacity:.5;font-size:10px}.onboarding-step__screenshots>.onboarding-step__figure:last-child:nth-child(odd){grid-column:1/-1}.onboarding-step__screenshots>.onboarding-step__figure:last-child:nth-child(odd) img{object-fit:contain;background:#fafaf7;max-height:260px}.onboarding-lightbox{z-index:9999;cursor:pointer;background:#000000bf;justify-content:center;align-items:center;padding:40px;animation:.2s lightbox-fade-in;display:flex;position:fixed;inset:0}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.onboarding-lightbox__img{cursor:default;border-radius:8px;max-width:90vw;max-height:85vh;animation:.2s lightbox-scale-in;box-shadow:0 20px 60px #0006}@keyframes lightbox-scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.onboarding-lightbox__close{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;font-size:36px;line-height:1;transition:opacity .15s;position:absolute;top:20px;right:28px}.onboarding-lightbox__close:hover{opacity:1}.onboarding-step__sa-copy{background:#f5f2e9;border-radius:6px;align-items:center;gap:10px;margin:8px 0 12px;padding:10px 14px;display:flex}.onboarding-step__sa-copy code{color:#7d6b3d;word-break:break-all;flex:1;font-size:13px}.onboarding-step__folder-input{margin-bottom:20px}.onboarding-step__folder-input label{color:#5e5954;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.onboarding-step__folder-input input{border:1px solid #e8e4d8;border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.onboarding-step__folder-input input:focus{border-color:#7d6b3d;outline:none;box-shadow:0 0 0 3px #7d6b3d1a}.onboarding-step__upload{text-align:center;background:#fafaf7;border:2px dashed #dcd8cb;border-radius:8px;margin-bottom:12px;padding:28px}.onboarding-step__upload-btn{color:#7d6b3d;border-color:#dcd8cb;margin-bottom:12px}.onboarding-step__upload-btn:hover{background:#f5f2e9}.onboarding-step__file-info{color:#7d6b3d;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.onboarding-step__progress{background:#f5f7fa;border-radius:8px;margin:16px 0;padding:16px}.onboarding-step__progress-item{color:#555;padding:4px 0;font-size:13px}.onboarding-step__progress-item:before{content:"✓";color:var(--color-success);margin-right:8px;font-weight:700;display:inline-block}.onboarding-step--done{text-align:center;padding:40px 0}.onboarding-step__done-icon{width:72px;height:72px;color:var(--color-success);background:#e8f5e9;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:36px;display:flex}.onboarding-step--done h2{font-size:24px}.onboarding-step--done p{color:#666;margin:8px 0 0;font-size:15px}.onboarding-step--done .onboarding-step__actions{justify-content:center}@media (width<=600px){.onboarding-page{padding:24px 12px}.onboarding-page__container{padding:24px 20px}.onboarding-page__top-bar{flex-wrap:wrap;gap:12px}.onboarding-step__screenshots{grid-template-columns:1fr}.onboarding-stepper__circles{gap:2px}.onboarding-stepper__item{flex:0 55px}.onboarding-stepper__label{font-size:9px}.onboarding-stepper__circle{width:32px;height:32px;font-size:12px}}.user-mgmt__notice{color:#1565c0;background:#e3f2fd;border:1px solid #bbdefb;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:13px;line-height:1.6}.user-mgmt__error{color:var(--color-danger);background:#fdecea;border-radius:8px;margin-bottom:16px;padding:10px 16px;font-size:14px}.user-mgmt__form{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px;padding:16px}.user-mgmt__form-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.user-mgmt__form-row .form-control{flex:1;min-width:140px}.user-mgmt__table-wrap{overflow-x:auto}.user-mgmt__table{border-collapse:collapse;width:100%;font-size:14px}.user-mgmt__table th{text-align:left;color:#555;white-space:nowrap;background:#f5f7fa;border-bottom:2px solid #e5e7eb;padding:10px 12px;font-size:13px;font-weight:600}.user-mgmt__table td{vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:10px 12px}.user-mgmt__table tbody tr:hover{background:#f9fafb}.user-mgmt__row--self{background:#f0f7ff}.user-mgmt__muted{color:#999;font-size:13px}.user-mgmt__role{border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.user-mgmt__role--admin{color:var(--primary);background:#e8f0fe}.user-mgmt__role--member{color:#666;background:#f0f0f0}.user-mgmt__role--platform_admin{color:#c62828;background:#fce4ec}.btn--xs{border-radius:4px;padding:7px 10px;font-size:12px}.btn--danger{background:var(--color-danger);color:#fff;cursor:pointer;border:none}.btn--danger:hover{opacity:.85}.form-control--sm{padding:10px;font-size:13px}@media (width<=600px){.user-mgmt__form-row{flex-direction:column}.user-mgmt__form-row .form-control{width:100%}}.account-page__error{color:var(--color-danger);background:#fdecea;border-radius:8px;margin-bottom:16px;padding:10px 16px;font-size:14px}.account-row{gap:20px;margin-bottom:20px;display:flex}.account-row>.account-section{flex:1;margin-bottom:0}@media (width<=768px){.account-row{flex-direction:column}}.account-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:20px;padding:24px}.account-section__actions{border-top:1px dashed #ececec;align-items:center;gap:12px;margin-top:16px;padding-top:12px;display:flex}.account-section__hint{color:#2e7d32;font-size:13px;display:inline-block}.account-section__title{color:#333;border-bottom:1px solid #f0f0f0;margin:0 0 12px;padding-bottom:8px;font-size:16px}.account-info-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.account-info-item{flex-direction:column;gap:4px;display:flex}.account-info-item__label{color:#999;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.account-info-item__value{color:#333;font-size:14px;font-weight:500}.account-section__header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.account-section__header .account-section__title{border-bottom:none;margin:0;padding-bottom:0}.account-info-item__input{color:#333;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:6px 10px;font-size:14px;transition:border-color .2s}.account-info-item__input:focus{border-color:var(--color-primary,#7c6a5b);outline:none}.account-info-item--actions{flex-direction:row;grid-column:1/-1;align-items:flex-end;gap:8px;display:flex}.account-status{border-radius:12px;padding:2px 10px;font-size:13px;font-weight:500;display:inline-block}.account-status--active{color:var(--color-success);background:#e8f5e9}.account-status--trial{color:#1565c0;background:#e3f2fd}.account-status--expired,.account-status--suspended,.account-status--cancelled{color:var(--color-danger);background:#fdecea}.account-status--onboarding{color:#e65100;background:#fff3e0}.account-status-timeline{flex-direction:column;gap:0;padding-left:4px;display:flex}.account-timeline-item{align-items:flex-start;gap:16px;padding:12px 0;display:flex;position:relative}.account-timeline-item:not(:last-child):after{content:"";background:var(--border,#e5e7eb);width:1px;position:absolute;top:32px;bottom:0;left:5px}.account-timeline-dot{background:var(--border,#e5e7eb);border-radius:50%;flex-shrink:0;width:11px;height:11px;margin-top:3px}.account-timeline-item--active .account-timeline-dot{background:var(--primary,#4a86e8);box-shadow:0 0 0 3px #4a86e833}.account-timeline-content{flex-direction:column;gap:4px;display:flex}.account-timeline-label{color:#999;text-transform:uppercase;letter-spacing:.5px;font-size:11px}.sub-current{justify-content:space-between;align-items:center;gap:16px;display:flex}.sub-current__status{align-items:center;gap:12px;display:flex}.sub-current__trial-info{color:#6b5340;font-size:13px}.payment-detail-modal{max-width:720px}.payment-detail-modal .modal__body{overflow-y:visible}.payment-detail__summary{align-items:center;gap:18px;margin-bottom:12px;font-size:13px;display:flex}.payment-detail__summary .btn{margin-left:auto}.payment-detail-modal .payment-detail__summary{border-radius:var(--radius);background:#f7f3ec;align-items:stretch;gap:0;margin-bottom:16px;padding:0;overflow:hidden}.payment-detail__summary-item{flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:0;padding:10px 16px;display:flex}.payment-detail__summary-label{color:#8b7355;letter-spacing:.3px;font-size:11px}.payment-detail__summary-value{color:#2c2319;font-size:13px;font-weight:600}.payment-detail__summary-value code{font-size:12px;font-weight:600}.payment-detail__summary-divider{background:#ddd5c8;flex-shrink:0;align-self:stretch;width:1px;margin:10px 0}.payment-detail__cancelled-notice{border-radius:0 var(--radius,6px) var(--radius,6px) 0;color:#b71c1c;background:#fdecea;border-left:3px solid #e53935;margin-bottom:12px;padding:8px 14px;font-size:13px}.payment-detail__list{grid-template-columns:1fr 1fr;gap:8px;display:grid}.payment-detail__card{border-radius:var(--radius);background:#fff;border:1px solid #ede8df;border-left:3px solid #ccc;grid-template-columns:auto 1fr auto;align-items:center;gap:2px 10px;padding:8px 12px;font-size:13px;display:grid}.payment-detail__card--active{border-left-color:#4caf50}.payment-detail__card--trial{border-left-color:#ff9800}.payment-detail__card--expired{border-left-color:#e53935}.payment-detail__card--onboarding{border-left-color:#2196f3}.payment-detail__card-seq{color:#6b5340;grid-row:1/3;align-self:center;font-size:11px;font-weight:600}.payment-detail__card-amount{color:#2c2319;font-weight:600}.payment-detail__card-method{color:#8b7355;font-size:12px}.payment-detail__card-time{color:#999;white-space:nowrap;font-size:11px}.payment-detail__card .account-status{grid-row:1/3;place-self:center end}.payment-detail__pagination{border-top:1px solid #ede8df;justify-content:center;align-items:center;gap:12px;margin-top:14px;padding-top:10px;display:flex}.payment-detail__page-info{color:#6b5340;font-size:13px}@media (width<=640px){.payment-detail__list{grid-template-columns:1fr}.payment-detail-modal{max-width:95vw}}.sub-history__empty{text-align:center;color:#999;padding:24px 0;font-size:14px}.sub-history__pagination{justify-content:center;align-items:center;gap:12px;margin-top:12px;padding:4px 0;display:flex}.sub-history__page-info{color:var(--text-muted);font-size:13px}.sub-history{flex-direction:column;gap:12px;display:flex}.sub-history__card{background:#fdfcfa;border:1px solid #e5e0d5;border-radius:8px;padding:14px 18px;transition:border-color .2s}.sub-history__card:hover{border-color:#d4a853}.sub-history__card--current{background:linear-gradient(135deg,#fdfcfa 0%,#fbf7ee 100%);border-color:#d4a853;box-shadow:0 1px 4px #d4a8531f}.sub-history__card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.sub-history__card-title{align-items:center;gap:8px;display:flex}.sub-history__plan{color:#2c2319;font-size:15px;font-weight:600}.sub-history__badge{color:#fff;background:#d4a853;border-radius:12px;padding:2px 10px;font-size:13px;font-weight:500;display:inline-block}.sub-history__amount{color:#2c2319;font-size:16px;font-weight:600}.sub-history__meta{color:#6b5340;border-bottom:1px solid #ede8df;align-items:center;gap:16px;margin-bottom:8px;padding-bottom:8px;font-size:12px;display:flex}.sub-history__meta-item code{color:#6b5d4f;background:#f0e6d2;border-radius:4px;padding:1px 6px;font-size:11px}.sub-history__period{border-bottom:1px solid #ede8df;align-items:center;gap:10px;margin-bottom:8px;padding-bottom:8px;display:flex}.sub-history__period-label{color:#6b5340;flex-shrink:0;font-size:12px}.sub-history__period-value{color:#2c2319;font-size:13px;font-weight:500}.sub-history__payments{margin-bottom:6px}.sub-history__payments-title{color:#6b5340;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;display:block}.sub-history__payment-row{background:#fff;border:1px solid #ede8df;border-radius:6px;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;padding:8px 12px;display:flex}.sub-history__payment-row:last-child{margin-bottom:0}.sub-history__payment-info{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sub-history__payment-amount{color:#2c2319;font-size:13px;font-weight:500}.sub-history__payment-account{color:#6b5340;font-family:monospace;font-size:12px}.sub-history__payment-dates{text-align:right;color:#999;flex-direction:column;flex-shrink:0;gap:2px;font-size:11px;display:flex}.sub-card__header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.sub-card__plan{color:#2c2319;font-size:15px;font-weight:600}.sub-card__amount{color:#2c2319;margin-left:auto;font-size:15px;font-weight:600}.sub-card__dl{border-bottom:1px solid #ede8df;grid-template-columns:80px 1fr;gap:4px 12px;margin-bottom:8px;padding-bottom:8px;font-size:13px;display:grid}.sub-card__dl dt{color:#6b5340;font-weight:500}.sub-card__dl dd{color:#2c2319;margin:0}.sub-card__dl code{color:#6b5d4f;background:#f0e6d2;border-radius:4px;padding:1px 6px;font-size:12px}.sub-card__payment{background:#fff;border:1px solid #ede8df;border-radius:6px;margin-bottom:6px;padding:8px 10px}.sub-card__payment:last-child{margin-bottom:0}.sub-card__payment-header{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.sub-card__payment-amount{color:#2c2319;font-weight:500}.sub-card__payment-meta{color:#999;font-size:11px}@media (width<=640px){.sub-current{flex-direction:column;align-items:flex-start}.sub-history__card-header{flex-direction:column;align-items:flex-start;gap:6px}.sub-history__payment-row{flex-direction:column;gap:6px}.sub-history__payment-dates{text-align:left}}.account-branding-form .form-group{margin-bottom:16px}.account-branding-form .form-label{color:#666;margin-bottom:4px;font-size:13px;display:block}@keyframes dash-skel-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.dash-skel{background-color:#eef1f5;background-image:linear-gradient(90deg,#eef1f5 0%,#f7f9fc 50%,#eef1f5 100%);background-repeat:no-repeat;background-size:200px 100%;border-radius:6px;animation:1.2s ease-in-out infinite dash-skel-shimmer;display:block}.dash-skel-wrap{padding:16px}.reauth-sa{background:#f5f2e9;min-height:100vh;padding:40px 16px}.reauth-sa__container{background:#fff;border-radius:12px;max-width:720px;margin:0 auto;padding:32px 36px;box-shadow:0 2px 12px #0000000f}.reauth-sa__container h1{color:#2d2926;margin:0 0 12px;font-family:Playfair Display,Georgia,serif;font-size:28px}.reauth-sa__intro{color:#5e5954;margin:0 0 20px;line-height:1.6}.reauth-sa__status{background:#faf7ec;border:1px solid #e8e4d8;border-radius:8px;margin-bottom:20px;padding:14px 16px;font-size:14px;line-height:1.7}.reauth-sa__status p{margin:0 0 4px}.reauth-sa__status code{background:#f1ecdc;border-radius:4px;padding:2px 6px;font-size:13px}.reauth-sa__error-card{background:#fdecea;border-left:4px solid #c0392b;border-radius:4px;margin-top:12px;padding:12px 14px}.reauth-sa__error-title{color:#8b2c20;margin:0 0 6px;font-weight:700}.reauth-sa__error-time{color:#888;margin:6px 0 0;font-size:12px}.reauth-sa__steps{color:#5e5954;margin:24px 0;padding-left:20px;line-height:1.8}.reauth-sa__steps li{margin-bottom:4px}.reauth-sa__steps a{color:#7d6b3d;text-decoration:underline}.reauth-sa__form{margin-top:24px}.reauth-sa__form label{color:#2d2926;margin-top:16px;margin-bottom:6px;font-size:14px;font-weight:600;display:block}.reauth-sa__form input[type=file]{display:block}.reauth-sa__form textarea{box-sizing:border-box;resize:vertical;background:#fafaf8;border:1px solid #d8d2c0;border-radius:6px;width:100%;padding:10px 12px;font-family:Geist Mono,SF Mono,Consolas,monospace;font-size:12px}.reauth-sa__form textarea:focus{outline-offset:-1px;outline:2px solid #d4a853}.reauth-sa__msg{border-radius:6px;margin-top:16px;padding:12px 14px;font-size:14px;line-height:1.6}.reauth-sa__msg--success{color:#1f4a26;background:#edf6ef;border-left:4px solid #3a7d44}.reauth-sa__msg--error{color:#8b2c20;background:#fdecea;border-left:4px solid #c0392b}.reauth-sa__msg p{margin:0 0 4px}.reauth-sa__hint{color:#555;word-break:break-word;margin-top:4px;font-size:12px}.reauth-sa__actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.dashboard__cards{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.dashboard__card{border:1px solid var(--border);border-radius:var(--radius);text-align:center;background:#fff;padding:20px}.dashboard__card-label{color:var(--text-muted);margin-bottom:6px;font-size:13px}.dashboard__card-value{font-size:22px;font-weight:700}.dashboard__section{margin-bottom:24px}.dashboard__section-title{background:var(--primary);color:#fff;border-radius:var(--radius);margin-bottom:16px;padding:10px 16px;font-size:18px;font-weight:700}.dashboard__chart{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:20px}.dashboard__chart-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.dashboard__chart-grid>.dashboard__chart{min-width:0}.table-responsive{overflow-x:auto}.table__row--subtotal td{border-top:2px solid var(--border);background:#f7f8fa;font-weight:600}.table__row--subtotal-income td:first-child{color:#2e7d32}.table__row--subtotal-expense td:first-child{color:#c62828}.table__row--net-profit td{border-top:3px double var(--border);background:#e8f5e9;font-size:13px;font-weight:700}.table__section-header td{letter-spacing:.5px;border-bottom:none;font-size:13px;font-weight:700;padding:8px 10px!important}.table__section-header--income td{color:#2e7d32;background:#4caf501a}.table__section-header--expense td{color:#c62828;background:#f443361a}.table__section-icon{margin-right:4px;font-size:10px}.text-primary{color:var(--primary)}.dashboard__card-yoy{margin-top:8px;font-size:13px;font-weight:600}.dashboard__card-yoy--up{color:var(--color-success)}.dashboard__card-yoy--down{color:var(--color-danger)}.dashboard__card-yoy--na{color:var(--text-muted);font-size:12px;font-weight:400}.dashboard__card-yoy-arrow{margin-right:4px;font-size:11px}.dashboard__panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px}.dashboard__panel-title{margin-bottom:16px;font-size:15px;font-weight:600}.dashboard__card-mom{margin-top:6px;font-size:12px;font-weight:600}.dashboard__card-mom--up{color:var(--color-success)}.dashboard__card-mom--down{color:var(--color-danger)}.dashboard__chart--donut{justify-content:center;align-items:center;max-height:360px;display:flex}.dashboard__cards--yoy{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px;display:grid}.dashboard__loan-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.dashboard__loan-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.dashboard__loan-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dashboard__loan-name{margin-bottom:2px;font-size:15px;font-weight:600}.dashboard__loan-meta{color:var(--text-muted);font-size:12px}.dashboard__loan-numbers{text-align:center;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.dashboard__loan-balance{align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.dashboard__loan-label{color:var(--text-muted);font-size:11px}.dashboard__loan-value{font-size:14px;font-weight:600}.dashboard__crm-row{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.dashboard__section--half{border:1px solid var(--border);background:#fff;border-radius:8px;padding:16px}.dashboard__section--half h3{margin-bottom:12px;font-size:15px;font-weight:600}.contact-card{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:10px;overflow:hidden}.contact-card__header{background:#f0f3f7;border-bottom:1px solid #dde2e8;align-items:center;gap:10px;padding:12px 16px;display:flex}.contact-card__name{flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.contact-card__eng-name{color:var(--text-muted);font-size:13px;font-weight:400}.contact-card__title{color:var(--text-muted);border-left:1.5px solid #c5cbd3;margin-left:2px;padding-left:10px;font-size:12px;font-weight:400}.contact-card__actions{flex-shrink:0;gap:6px;margin-left:auto;display:flex}.contact-card__btn-delete{color:#d32f2f;background:#fff;border:1px solid #e0e0e0}.contact-card__btn-delete:hover{border-color:var(--color-danger);background:#ffebee}.contact-card__body{flex-wrap:wrap;gap:4px 16px;padding:10px 16px;font-size:13px;display:flex}.contact-card__field{white-space:nowrap}.contact-card__card-link{color:var(--primary);cursor:pointer;font-size:13px;text-decoration:none}.contact-card__card-link:hover{text-decoration:underline}.contact-card__notes{border-top:1px solid var(--border);white-space:pre-line;width:100%;color:var(--text-muted);margin-top:4px;padding-top:8px;font-size:12px}.contact-form{border:2px solid var(--primary);background:#fafbff;border-radius:8px;margin-bottom:12px;padding:16px}.contact-card>.contact-form{border:none;border-top:2px solid var(--primary);border-radius:0;margin-bottom:0}.contact-form__footer{justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;display:flex}.contact-form__footer .meta-timestamps{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:0;padding:8px 14px}.contact-form .form-grid{grid-template-columns:1fr 1fr 1fr}.card-lightbox{z-index:9999;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.card-lightbox__wrap{background:0 0;border:none;padding:0;display:inline-block;position:relative}.card-lightbox__wrap img{border-radius:8px;max-width:90vw;max-height:85vh;display:block;box-shadow:0 4px 20px #0006}.card-lightbox__close{width:32px;height:32px;color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex;position:absolute;top:-12px;right:-12px;box-shadow:0 2px 6px #0003}.card-lightbox__close:hover{background:#f0f0f0}.upload-overlay{z-index:9999;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.upload-overlay__content{color:var(--text-primary);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:16px;padding:32px 48px;font-size:15px;font-weight:500;display:flex;box-shadow:0 8px 30px #0003}.upload-overlay__spinner{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.activity-tab__toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.activity-follow-up{align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.activity-follow-up--overdue{color:#c53030;font-weight:500}.tag--muted{background:var(--bg-secondary);color:var(--text-muted);font-size:11px}.tag--done{color:#155724;background:#d4edda}.tag--type{color:#1a56db;background:#e8f0fe;border-radius:4px;padding:1px 8px;font-size:11px}.pos-layout{--pos-bg:#fbf7f0;--pos-bg-frame:#e8e0d4;--pos-card:#fff;--pos-border:#f0e6d2;--pos-text:#3d3425;--pos-text-muted:#6b5d4f;--pos-text-faint:#c4b5a0;--pos-gold:#d4a853;--pos-gold-deep:#c49a48;--pos-gold-soft:#d4a8531f;--pos-active:#2c2319;--pos-danger:#e05555;--pos-radius-card:14px;--pos-radius-pill:12px;--pos-shadow-card:0 1px 2px #2c23190a;--pos-shadow-frame:0 8px 32px #2c231926;background:var(--pos-bg-frame);justify-content:center;min-height:100vh;display:flex}.pos-layout__viewport{background:var(--pos-bg);width:100%;max-width:480px;min-height:100vh;box-shadow:var(--pos-shadow-frame);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.pos-page{flex-direction:column;flex:1;display:flex}.pos-login{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:32px 24px;display:flex}.pos-login__logo{align-items:center;gap:8px;margin-bottom:24px;display:flex}.pos-login__brand{letter-spacing:.5px;font-size:24px;font-weight:700}.pos-login__brand-pro{color:#6b5d4f}.pos-login__brand-fi{color:#d4a853}.pos-login__title{color:#4a3f2e;margin:0 0 8px;font-size:22px;font-weight:600}.pos-login__subtitle{color:#8a7b66;margin:0 0 32px;font-size:14px}.pos-login__google{justify-content:center;margin-bottom:16px;display:flex}.pos-login__error{color:#8b1a1a;background:#fdecea;border:1px solid #e57373;border-radius:8px;margin-top:12px;padding:10px 14px;font-size:13px;display:block}.pos-page__body{flex:1;padding:16px}.pos-page__body--centered{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:40px 24px;display:flex}.pos-page__lead{color:#6b5d4f;margin:0;font-size:15px;line-height:1.7}.pos-header{background:var(--pos-bg);z-index:10;flex-shrink:0;align-items:center;gap:4px;height:48px;padding:0 12px 0 4px;display:flex;position:sticky;top:0}.pos-header__back{color:var(--pos-text);cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;padding:8px 12px;font-size:15px;font-weight:600;display:inline-flex}.pos-header__back:hover{background:var(--pos-gold-soft);border-radius:8px}.pos-header__back svg{color:var(--pos-text)}.pos-header__title{color:var(--pos-text);text-align:center;flex:1;margin:0;font-size:17px;font-weight:700}.pos-header__title--start{text-align:left;padding:0 8px;font-size:20px}.pos-header__right{align-items:center;gap:8px;display:flex}.pos-section{background:var(--pos-card);border-radius:var(--pos-radius-card);box-shadow:var(--pos-shadow-card);margin-bottom:16px;overflow:hidden}.pos-section__title{color:var(--pos-text);letter-spacing:.3px;border-bottom:1px solid var(--pos-border);align-items:center;gap:8px;margin:0;padding:14px 16px 10px;font-size:13px;font-weight:700;display:flex}.pos-section__title:before{content:"";background:var(--pos-gold);border-radius:2px;width:3px;height:14px;display:inline-block}.pos-list-link{background:var(--pos-card);color:var(--pos-text);text-align:left;cursor:pointer;border:none;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;font-size:15px;font-weight:500;text-decoration:none;display:flex;position:relative}.pos-list-link+.pos-list-link:before{content:"";background:var(--pos-border);height:1px;position:absolute;top:0;left:16px;right:16px}.pos-list-link:hover{background:#fff2da}.pos-list-link__chevron{color:var(--pos-text-faint);font-size:20px}.pos-list-link__icon{width:20px;height:20px;color:var(--pos-gold);flex-shrink:0;justify-content:center;align-items:center;margin-right:10px;display:inline-flex}.pos-list-link__main{flex:1;align-items:center;min-width:0;display:flex}.pos-list-link__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pos-list-link__name{color:var(--pos-text);font-size:15px;font-weight:500}.pos-list-link__desc{color:var(--pos-text-faint);font-size:11px}.pos-list-link__value{color:var(--pos-text-muted);font-size:14px;font-weight:500}.pos-list-link--danger .pos-list-link__name,.pos-list-link--danger .pos-list-link__icon{color:var(--pos-danger)}.pos-tab-bar{height:64px;padding:6px 12px calc(8px + env(safe-area-inset-bottom)) 12px;background:var(--pos-card);border-top:1px solid var(--pos-border);z-index:10;flex-shrink:0;display:flex;position:sticky;bottom:0}.pos-tab-bar__item{cursor:pointer;color:var(--pos-text-faint);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:4px 0;text-decoration:none;display:flex}.pos-tab-bar__item svg{width:22px;height:22px}.pos-tab-bar__item span{font-size:11px;font-weight:500}.pos-tab-bar__item--active{color:var(--pos-gold)}.pos-tab-bar__item--active span{font-weight:700}.pos-history__amount{color:var(--pos-gold);font-size:16px;font-weight:700}.pos-history__status{vertical-align:middle;border-radius:4px;margin-left:2px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.pos-history__status--ok{color:#2e7d32;background:#66bb6a26}.pos-history__status--warn{color:#c04545;background:#e5555526}.pos-list-link--warn{border-left:3px solid #e05555}.pos-sales-header{background:var(--pos-bg);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.pos-sales-header__title{align-items:center;gap:8px;display:flex}.pos-sales-header__date{color:var(--pos-text);font-size:22px;font-weight:700}.pos-sales-header__actions{align-items:center;gap:8px;display:flex}.pos-sync-badge{background:var(--pos-gold-soft);color:var(--pos-gold-deep);cursor:pointer;border:none;border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:600;display:inline-flex}.pos-sync-badge:disabled{opacity:.6;cursor:not-allowed}.pos-sync-badge--offline{color:var(--pos-text-muted);background:#f5f5f5}.pos-sun-btn{background:var(--pos-card);border:1px solid var(--pos-border);cursor:pointer;width:36px;height:32px;color:var(--pos-gold);border-radius:16px;justify-content:center;align-items:center;display:flex}.pos-sales-layout{flex-direction:column;flex:1;min-height:0;display:flex}@media (width>=900px){.pos-sales-layout{flex-direction:row;gap:20px;padding:0 16px 12px}.pos-sales-layout>.pos-page__body{flex:1;padding:4px 0 0;overflow-y:auto}.pos-sales-layout>.pos-sales-summary{background:0 0;flex-shrink:0;align-self:flex-start;width:380px;padding:4px 0 0}}.pos-sales-summary{background:var(--pos-bg);flex-direction:column;flex-shrink:0;gap:6px;padding:6px 16px 12px;display:flex}.pos-sales-summary__revenue{background:var(--pos-card);border-radius:var(--pos-radius-card);box-shadow:var(--pos-shadow-card);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.pos-sales-summary__label{color:var(--pos-text);font-size:16px;font-weight:700}.pos-sales-summary__amount{color:var(--pos-gold);align-items:baseline;gap:2px;font-size:22px;font-weight:800;display:flex}.pos-sales-summary__dollar{color:var(--pos-gold);font-size:16px;font-weight:700}.pos-sales-summary__stats{gap:8px;display:flex}.pos-sales-summary__card{background:var(--pos-card);border-radius:var(--pos-radius-card);box-shadow:var(--pos-shadow-card);flex-direction:column;flex:1;align-items:center;padding:8px 10px;display:flex}.pos-sales-summary__stat-label{color:var(--pos-text-muted);font-size:11px;font-weight:500}.pos-sales-summary__stat-value{color:var(--pos-text);font-size:16px;font-weight:800}.pos-insight-card{background:var(--pos-card);border-radius:var(--pos-radius-card);box-shadow:var(--pos-shadow-card);flex-direction:column;gap:8px;padding:14px;display:flex}.pos-insight-card__head{color:var(--pos-gold);align-items:center;gap:8px;display:flex}.pos-insight-card__title{color:var(--pos-text);font-size:14px;font-weight:700}.pos-insight-card__row{justify-content:space-between;align-items:center;display:flex}.pos-insight-card__name{color:var(--pos-text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.pos-insight-card__qty{color:var(--pos-gold);flex-shrink:0;margin-left:8px;font-size:16px;font-weight:700}.pos-insight-card__bar{background:var(--pos-border);border-radius:4px;height:8px;overflow:hidden}.pos-insight-card__fill{background:var(--pos-gold);border-radius:4px;height:100%;transition:width .3s}.pos-insight-card__pct{color:var(--pos-text-faint);font-size:11px;font-weight:500}.pos-btn{color:#6b5d4f;cursor:pointer;background:#fff;border:1px solid #f0e6d2;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .2s,border-color .2s,transform .1s;display:inline-flex}.pos-btn:active{transform:scale(.97)}.pos-btn:disabled{opacity:.5;cursor:not-allowed}.pos-btn--primary{color:#fff;background:#d4a853;border-color:#d4a853}.pos-btn--primary:hover:not(:disabled){background:#c09445}.pos-btn--ghost{color:#8b7355;background:0 0;border-color:#0000}.pos-btn--ghost:hover:not(:disabled){background:#fbf7f0}.pos-btn--sm{padding:6px 12px;font-size:13px}.pos-cat-add-btn{color:#fff;cursor:pointer;background:#d4a853;border:none;border-radius:10px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.pos-cat-tip{color:#c49a48;background:#d4a8531f;border-radius:10px;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;font-size:12px;font-weight:500;display:flex}.pos-cat-tip svg{flex-shrink:0}.pos-cat-list{flex-direction:column;gap:8px;display:flex}.pos-cat-row{background:#fff;border-radius:12px;align-items:center;gap:8px;padding:14px 10px 14px 4px;display:flex;box-shadow:0 1px 2px #2c23190a}.pos-cat-row__handle{cursor:grab;color:#c4b5a0;touch-action:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:flex}.pos-cat-row__handle:disabled{cursor:not-allowed;opacity:.35}.pos-cat-row__handle:active:not(:disabled){cursor:grabbing}.pos-cat-row__color{border-radius:9px;flex-shrink:0;width:18px;height:18px;margin:0 8px 0 4px;box-shadow:0 0 0 3px #fff,0 0 0 4px #f0e6d2}.pos-cat-row__info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.pos-cat-row__name{color:#3d3425;align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.pos-cat-row__system-tag{color:#9e9e9e;background:#f5f5f5;border-radius:6px;padding:2px 6px;font-size:10px;font-weight:600}.pos-cat-row__meta{color:#6b5d4f;align-items:center;gap:6px;font-size:11px;display:flex}.pos-cat-row__count{color:#d4a853;font-weight:700}.pos-cat-row__sep{background:#c4b5a0;border-radius:1px;width:2px;height:2px}.pos-cat-row__actions{flex-shrink:0;gap:6px;display:flex}.pos-cat-row__action{cursor:pointer;color:#d4a853;background:#fbf7f0;border:1px solid #f0e6d2;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:flex}.pos-cat-row__action--danger{color:#e05555}.pos-cat-row__action:active{transform:scale(.96)}.pos-cat-color-picker{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:8px;display:grid}.pos-cat-color-chip{cursor:pointer;border:3px solid #0000;border-radius:12px;width:40px;height:40px;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s}.pos-cat-color-chip:hover{transform:scale(1.08)}.pos-cat-color-chip--active{border-color:#3d3425;box-shadow:inset 0 0 0 2px #fff,0 2px 6px #2c231933}.pos-cat-modal{max-width:380px}.pos-modal{border-radius:16px;overflow:hidden}.pos-modal__header{border-bottom:1px solid var(--pos-border);padding:16px 20px}.pos-modal__header .modal__title{color:var(--pos-text);font-size:18px;font-weight:700}.pos-modal__footer{border-top:1px solid var(--pos-border);background:var(--pos-bg);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.pos-modal__footer .pos-btn{min-width:88px;padding:10px 18px}.pos-form__label{color:var(--pos-text-muted);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.pos-empty{text-align:center;color:#8b7355;flex-direction:column;align-items:center;gap:16px;padding:48px 20px;display:flex}.pos-alert{border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:14px}.pos-alert--error{color:#c0392b;background:#ffe8e5;border:1px solid #f5b7b1}.pos-item-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pos-item-row{touch-action:none;background:#fff;border-radius:12px;align-items:center;gap:6px;padding:12px 8px 12px 4px;display:flex}.pos-item-row--inactive{opacity:.5}.pos-item-row__handle{color:#c4b5a0;cursor:grab;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:28px;padding:0;display:inline-flex}.pos-item-row__handle:active{cursor:grabbing}.pos-item-row__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pos-item-row__main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.pos-item-row__title-row{align-items:center;gap:6px;display:flex}.pos-item-row__name{color:#3d3425;font-size:15px;font-weight:700}.pos-item-row__cat{color:var(--pos-gold-deep);background:var(--pos-gold-soft);border-radius:6px;padding:1px 6px;font-size:10px;font-weight:500}.pos-item-row__meta{color:#6b5d4f;align-items:center;gap:6px;font-size:11px;display:flex}.pos-item-row__price{color:#3d3425;font-weight:700}.pos-item-row__sep{background:#c4b5a0;border-radius:50%;width:2px;height:2px}.pos-toggle{cursor:pointer;border:none;border-radius:10px;flex-shrink:0;align-items:center;width:36px;height:20px;padding:2px;transition:background .2s,justify-content;display:flex}.pos-toggle--on{background:#66bb6a;justify-content:flex-end}.pos-toggle--off{background:#e0d5c0;justify-content:flex-start}.pos-edit-btn{cursor:pointer;width:30px;height:30px;color:var(--pos-gold);background:#fbf7f0;border:1px solid #f0e6d2;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pos-add-btn{background:var(--pos-gold);color:#fff;cursor:pointer;border:none;border-radius:10px;align-items:center;gap:4px;padding:7px 12px;font-size:13px;font-weight:600;display:flex}.pos-tip{background:var(--pos-gold-soft);border-radius:10px;align-items:center;gap:8px;margin:0 0 8px;padding:10px 12px;display:flex}.pos-tip svg{color:var(--pos-gold-deep);flex-shrink:0}.pos-tip span{color:var(--pos-gold-deep);font-size:12px;font-weight:500}.pos-modal{max-width:440px}.pos-form .form-group{margin-bottom:14px}.pos-form label{color:#6b5d4f;margin-bottom:4px;font-size:13px;font-weight:600;display:block}.pos-form input,.pos-form select,.pos-form textarea{box-sizing:border-box;color:#3d3425;background:#fff;border:1px solid #f0e6d2;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.pos-form select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B5D4F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;padding-right:36px}.pos-form input:focus,.pos-form select:focus,.pos-form textarea:focus{border-color:#d4a853;outline:none;box-shadow:0 0 0 3px #d4a8531f}.pos-form small{color:#8b7355;margin-top:4px;font-size:12px;display:block}.pos-form .form-error{color:#c0392b;background:#ffe8e5;border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:13px}.pos-counter{align-items:center;gap:8px;display:inline-flex}.pos-counter__btn{cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;font-weight:700;transition:transform .1s;display:flex}.pos-counter__btn--minus,.pos-counter button.pos-counter__btn:first-child{color:#6b5d4f;background:#f0e6d2}.pos-counter__btn--plus,.pos-counter button.pos-counter__btn:last-child{background:var(--pos-gold);color:#fff}.pos-counter__btn:active{transform:scale(.92)}.pos-counter__input{text-align:center;color:#3d3425;-moz-appearance:textfield;background:#fbf7f0;border:1px solid #f0e6d2;border-radius:8px;width:54px;height:36px;font-size:18px;font-weight:800}.pos-counter__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pos-counter__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pos-counter__input:focus{outline:2px solid var(--pos-gold);outline-offset:-1px}.pos-setup-topbar{flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex}.pos-setup-topbar__back{cursor:pointer;color:var(--pos-text);background:0 0;border:none;align-items:center;gap:6px;padding:6px 10px;font-size:15px;font-weight:500;display:flex}.pos-setup-head{flex-direction:column;gap:6px;padding:8px 20px 12px;display:flex}.pos-setup-head__row{align-items:center;gap:8px;display:flex}.pos-setup-head__title{color:var(--pos-text);margin:0;font-size:22px;font-weight:700}.pos-today-badge{background:var(--pos-gold);color:#fff;border-radius:10px;padding:3px 10px;font-size:11px;font-weight:700}.pos-setup-head__desc{color:var(--pos-text-muted);font-size:13px;font-weight:400}.pos-setup-auto{background:var(--pos-gold-soft);border:1px solid #d4a85366;border-radius:12px;align-items:center;gap:8px;margin-bottom:10px;padding:10px 12px;display:flex}.pos-setup-auto svg{color:var(--pos-gold-deep);flex-shrink:0}.pos-setup-auto span{color:#8b6d2a;font-size:12px;font-weight:600;line-height:1.5}.pos-setup-auto span b{color:var(--pos-text)}.pos-setup-tpl-chips{gap:6px;margin-bottom:4px;padding:2px 0 12px;display:flex;overflow-x:auto}.pos-tpl-chip{border:1px solid var(--pos-border);color:var(--pos-text-muted);white-space:nowrap;cursor:pointer;background:#fff;border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.pos-tpl-chip--active{background:var(--pos-gold);color:#fff;border-color:var(--pos-gold)}.pos-tpl-chip--add{color:var(--pos-gold);border-style:dashed;border-color:var(--pos-gold);background:0 0}.pos-setup-summary{box-shadow:var(--pos-shadow-card);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:12px 16px;display:flex}.pos-setup-summary__right{flex-direction:column;align-items:flex-end;display:flex}.pos-setup-summary__label{color:var(--pos-text-muted);margin-bottom:2px;font-size:12px}.pos-setup-summary__value{color:var(--pos-text);font-size:20px;font-weight:800}.pos-setup-summary__value--gold{color:var(--pos-gold)}.pos-setup-list-helper{color:var(--pos-text-muted);padding:0 4px 4px;font-size:11px;font-weight:600}.pos-setup-cat-bar{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.pos-setup-start-btn{background:var(--pos-gold);color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;height:52px;font-size:18px;font-weight:700;display:flex}.pos-setup-start-btn:disabled{opacity:.5;cursor:not-allowed}.pos-setup-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pos-setup-row{background:#fff;border:1px solid #f0e6d2;border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.pos-setup-row__main{flex:1;min-width:0}.pos-setup-row__name{color:#6b5d4f;font-size:15px;font-weight:600}.pos-setup-row__meta{color:#8b7355;margin-top:2px;font-size:12px}.pos-setup-footer{background:#fffef9;border-top:1px solid #f0e6d2;padding:12px 16px;position:sticky;bottom:0}.pos-btn--block{width:100%;padding:14px;font-size:16px}.pos-cat-filter{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.pos-cat-filter__toggle{border:1px solid var(--pos-border);color:var(--pos-text);cursor:pointer;background:#fff;border-radius:12px;align-self:flex-start;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.pos-cat-filter__toggle svg{color:var(--pos-text-muted)}.pos-cat-filter__lbl{color:var(--pos-text-muted);font-weight:500}.pos-cat-filter__val{font-weight:700}.pos-cat-filter__chev{transition:transform .2s}.pos-cat-filter--open .pos-cat-filter__toggle{background:var(--pos-bg);border-color:var(--pos-gold)}.pos-cat-filter--open .pos-cat-filter__chev{color:var(--pos-gold);transform:rotate(180deg)}.pos-cat-filter__panel{border:1px solid var(--pos-border);background:#fff;border-radius:12px;flex-wrap:wrap;gap:6px;padding:10px;display:flex}.pos-cat-bar{flex-wrap:wrap;gap:6px;margin-bottom:4px;padding:4px 0 12px;display:flex}.pos-cat-chip{background:var(--pos-bg);color:var(--pos-text-muted);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:14px;flex-shrink:0;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex}.pos-cat-chip--active{background:var(--pos-active);color:#fff;border-color:var(--pos-active);font-weight:600}.pos-cat-chip--active svg{color:#fff}.pos-chip-group{flex-wrap:wrap;gap:8px;display:flex}.pos-chip{border:1px solid var(--pos-border);color:var(--pos-text-muted);cursor:pointer;background:#fff;border-radius:20px;align-items:center;gap:4px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex}.pos-chip--active{background:var(--pos-active);color:#fff;border-color:var(--pos-active);font-weight:600}.pos-restocklog-date{margin-bottom:12px}.pos-restocklog-date input{border:1px solid var(--pos-border);background:#fff;border-radius:10px;width:100%;padding:10px 12px;font-size:14px}.pos-restocklog-summary{box-shadow:var(--pos-shadow-card);background:#fff;border-radius:14px;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;padding:14px;display:grid}.pos-restocklog-summary>div{flex-direction:column;align-items:center;gap:4px;display:flex}.pos-restocklog-summary__label{color:var(--pos-text-muted);font-size:11px;font-weight:500}.pos-restocklog-summary__value{color:var(--pos-text);font-size:22px;font-weight:800}.pos-restocklog-summary__value--gold{color:var(--pos-gold)}.pos-restocklog-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pos-restocklog-row{box-shadow:var(--pos-shadow-card);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.pos-restocklog-row__main{flex:1;min-width:0}.pos-restocklog-row__name{color:var(--pos-text);font-size:15px;font-weight:700}.pos-restocklog-row__meta{color:var(--pos-text-muted);margin-top:2px;font-size:12px}.pos-restocklog-row__qty{color:var(--pos-gold);flex-shrink:0;font-size:18px;font-weight:800}@media (width>=768px){.pos-layout__viewport{max-width:720px}.pos-page__body{padding-left:24px;padding-right:24px}}@media (width>=1024px){.pos-layout__viewport{border-radius:24px;max-width:1280px;min-height:calc(100vh - 48px);margin:24px auto}.pos-layout{padding:0}}.pos-sales-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pos-sales-row{background:var(--pos-card);box-shadow:var(--pos-shadow-card);border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.pos-sales-row__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pos-sales-row__name{color:var(--pos-text);font-size:15px;font-weight:700}.pos-sales-row__meta{color:var(--pos-text-muted);font-size:12px;font-weight:500}.pos-sales-footer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#fffef9eb 0%,#fffef9 30%);border-top:1px solid #f0e6d2;padding:12px 16px;position:sticky;bottom:0}.pos-sales-footer__main{justify-content:space-between;align-items:baseline;display:flex}.pos-sales-footer__label{color:#8b7355;font-size:13px}.pos-sales-footer__value{color:#6b5d4f;font-size:22px;font-weight:700}.pos-sales-footer__meta{color:#8b7355;margin-top:4px;font-size:12px}.pos-stock-chip{background:var(--pos-gold-soft);color:var(--pos-gold-deep);cursor:pointer;border:1px solid #d4a8534d;border-radius:8px;align-self:flex-start;align-items:center;gap:4px;margin-top:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.pos-stock-chip:hover{background:#d4a85333}.pos-sheet-overlay{z-index:1000;background:#2c231980;border:none;flex-direction:column;justify-content:flex-end;padding:0;display:flex;position:fixed;inset:0}.pos-sheet{padding:24px 20px calc(20px + env(safe-area-inset-bottom));background:#fff;border-radius:24px 24px 0 0;flex-direction:column;gap:18px;max-height:90vh;animation:.25s ease-out pos-sheet-up;display:flex;position:relative;overflow-y:auto}@keyframes pos-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pos-sheet__handle{background:#e0d6bc;border-radius:3px;width:48px;height:5px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.pos-sheet__title-block{margin-top:8px}.pos-sheet__title{color:#3d3425;margin:0;font-size:22px;font-weight:700}.pos-sheet__subtitle{color:#6b5d4f;margin-top:4px;font-size:15px;font-weight:500}.pos-sheet__footer{gap:10px;display:flex}.pos-sheet-btn{cursor:pointer;border:none;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:6px;height:50px;font-size:15px;font-weight:600;display:flex}.pos-sheet-btn--cancel{color:#6b5d4f;background:#fbf7f0;border:1px solid #f0e6d2}.pos-sheet-btn--confirm{background:var(--pos-gold);color:#fff;font-weight:700}.pos-sheet-btn--confirm:disabled{opacity:.5;cursor:not-allowed}.pos-restock-status{background:#fbf7f0;border:1px solid #f0e6d2;border-radius:12px;padding:14px 16px;display:flex}.pos-restock-status__cell{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.pos-restock-status__label{color:#6b5d4f;font-size:11px;font-weight:500}.pos-restock-status__value{color:#3d3425;font-size:22px;font-weight:800}.pos-restock-status__value--gold{color:var(--pos-gold)}.pos-restock-status__value--amber{color:#c49a48}.pos-restock-add{flex-direction:column;gap:10px;display:flex}.pos-restock-add__label{color:#6b5d4f;font-size:13px;font-weight:600}.pos-restock-add__row{align-items:center;gap:10px;display:flex}.pos-big-btn{cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;font-weight:700;transition:transform .1s;display:flex}.pos-big-btn:active{transform:scale(.92)}.pos-big-btn:disabled{opacity:.4;cursor:not-allowed}.pos-big-btn--minus{color:#6b5d4f;background:#f0e6d2}.pos-big-btn--plus{background:var(--pos-gold);color:#fff}.pos-restock-add__display{background:#fbf7f0;border:1px solid #f0e6d2;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;height:54px;display:flex}.pos-restock-add__plus{color:var(--pos-gold);font-size:18px;font-weight:700}.pos-restock-add__num{color:var(--pos-gold);font-size:28px;font-weight:800}.pos-restock-add__unit{color:#6b5d4f;font-size:14px;font-weight:500}.pos-restock-quick{gap:8px;display:flex}.pos-quick-btn{color:#6b5d4f;cursor:pointer;background:#fff;border:1px solid #f0e6d2;border-radius:18px;flex:1;justify-content:center;align-items:center;height:36px;font-size:14px;font-weight:600;display:flex}.pos-quick-btn:active{background:#fbf7f0}.pos-restock-preview{background:var(--pos-gold-soft);border-radius:12px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.pos-restock-preview__text{flex-direction:column;gap:2px;display:flex}.pos-restock-preview__label{color:#6b5d4f;font-size:12px;font-weight:500}.pos-restock-preview__value{color:var(--pos-gold);font-size:18px;font-weight:800}.pos-restock-preview svg{color:var(--pos-gold);flex-shrink:0}.pos-select{color:#6b5d4f;background:#fff;border:1px solid #f0e6d2;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.pos-stats-custom{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pos-stats-meta{color:#8b7355;margin:8px 0 12px;font-size:12px}.pos-stats-kpi{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.pos-stats-kpi__card{box-shadow:var(--pos-shadow-card);background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:12px 10px;display:flex}.pos-stats-kpi__label{color:#6b5d4f;font-size:11px;font-weight:500}.pos-stats-kpi__value{color:#3d3425;font-size:20px;font-weight:800}.pos-stats-kpi__card:first-child .pos-stats-kpi__value{color:var(--pos-gold)}.pos-rank-list,.pos-cat-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pos-rank-row{background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.pos-rank-row__rank{color:#6b5d4f;background:#f0e6d2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.pos-rank-row--first .pos-rank-row__rank{background:var(--pos-gold);color:#fff}.pos-rank-row__main{flex:1;min-width:0}.pos-rank-row__name{color:#6b5d4f;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.pos-rank-row__bar{background:#f0e6d2;border-radius:4px;height:6px;margin:6px 0 4px;overflow:hidden}.pos-rank-row__bar-fill{background:linear-gradient(90deg,#d4a853,#c09445);border-radius:4px;height:100%;transition:width .3s}.pos-rank-row__meta{color:#8b7355;font-size:12px}.pos-stat-cat-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.pos-stat-cat-card{background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 10px;display:flex}.pos-stat-cat-card__dot{border-radius:50%;width:10px;height:10px}.pos-stat-cat-card__name{color:#6b5d4f;font-size:12px;font-weight:600}.pos-stat-cat-card__val{color:#3d3425;font-size:16px;font-weight:800}.pos-stat-cat-card__pct{color:var(--pos-gold);font-size:11px;font-weight:500}.pos-cat-list-meta{color:#8b7355;font-size:12px}.pos-alert--warn{color:#8b6914;background:#fff4d6;border:1px solid #e8c679}.pos-section.pos-form{padding:0 16px 12px}.pos-section.pos-form .pos-section__title{padding-left:0;padding-right:0}.pos-section.pos-form .form-group{margin-bottom:12px}.pos-section.pos-form .form-group:last-child{margin-bottom:0}.pos-finalize-list{flex-direction:column;margin:0;padding:0 16px;list-style:none;display:flex}.pos-finalize-row{color:var(--pos-text);align-items:center;gap:8px;padding:12px 0;font-size:14px;display:flex;position:relative}.pos-finalize-row+.pos-finalize-row:before{content:"";background:var(--pos-border);height:1px;position:absolute;top:0;left:0;right:0}.pos-finalize-row__name{flex:1;font-weight:600}.pos-finalize-row__qty{color:var(--pos-text-muted);text-align:right;min-width:44px;font-size:13px}.pos-finalize-row__amount{text-align:right;min-width:80px;color:var(--pos-text);font-weight:700}.pos-finalize-summary{border-top:1px solid var(--pos-border);color:var(--pos-text-muted);background:#fdeac9;justify-content:space-between;align-items:baseline;padding:14px 16px;font-size:14px;display:flex}.pos-finalize-summary strong{color:var(--pos-text);font-size:16px}.pos-finalize-preview{background:var(--pos-gold-soft);color:var(--pos-text-muted);border-radius:14px;justify-content:space-between;align-items:center;margin:16px 0;padding:16px 18px;font-size:14px;font-weight:500;display:flex}.pos-finalize-preview strong{color:var(--pos-gold);font-size:24px;font-weight:800}.pos-finalize-success{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.pos-loading-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999;background:#1c160e8c;justify-content:center;align-items:center;animation:.18s ease-out posLoadingFadeIn;display:flex;position:fixed;inset:0}.pos-loading-overlay__card{background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:14px;min-width:240px;max-width:320px;padding:32px 36px;display:flex;box-shadow:0 18px 48px #00000052}.pos-loading-overlay__spinner{border:4px solid #f0e6d2;border-top-color:#d4a853;border-radius:50%;width:44px;height:44px;animation:.9s linear infinite posLoadingSpin}.pos-loading-overlay__text{color:#1c160e;text-align:center;margin:0;font-size:15px;font-weight:600}.pos-loading-overlay__hint{color:#8a7c66;text-align:center;margin:0;font-size:12px}@keyframes posLoadingSpin{to{transform:rotate(360deg)}}@keyframes posLoadingFadeIn{0%{opacity:0}to{opacity:1}}.pos-ocr-loading{color:#8a7c66;background:#f5ede0;border-radius:10px;justify-content:center;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.pos-ocr-loading__spinner{border:2px solid #e0d4ba;border-top-color:#d4a853;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.8s linear infinite posLoadingSpin}.pos-ocr-loading__text{white-space:nowrap}.pwa-install-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:9000;background:#1c160e99;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out posLoadingFadeIn;display:flex;position:fixed;inset:0}.pwa-install-card{background:#fff;border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:24px 22px;display:flex;box-shadow:0 20px 50px #00000059}.pwa-install-card__title{color:#1c160e;margin:0;font-size:18px;font-weight:700}.pwa-install-card__desc{color:#6f604a;margin:0;font-size:13px;line-height:1.5}.pwa-install-card__hint{color:#6f604a;margin:0;font-size:13px;line-height:1.6}.pwa-install-steps{color:#1c160e;flex-direction:column;gap:8px;margin:6px 0 0;padding-left:22px;font-size:13px;line-height:1.6;display:flex}.pwa-install-steps li{padding-left:2px}.pwa-install-steps strong{color:#d4a853}.pwa-install-steps__icon{vertical-align:middle;color:#6f604a;background:#f5ede0;border-radius:6px;align-items:center;margin:0 4px;padding:2px 6px;display:inline-flex}.pwa-install-card__actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.pos-finalize-success__icon{color:#fff;background:#d4a853;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:32px;display:inline-flex}.pos-alert--info{color:#2c5282;background:#eaf3ff;border:1px solid #bcdcfe}.pos-link-btn{color:#2c5282;cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.pos-tpl-section-title{color:var(--pos-text-muted);margin:0 0 12px 4px;font-size:13px;font-weight:600}.pos-tpl-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.pos-tpl-card{box-shadow:var(--pos-shadow-card);background:#fff;border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.pos-tpl-card--default{border:1.5px solid var(--pos-gold)}.pos-tpl-card__head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pos-tpl-card__name-block{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.pos-tpl-card__name{color:var(--pos-text);align-items:center;gap:6px;margin:0;font-size:16px;font-weight:700;display:flex}.pos-tpl-card__lock{color:var(--pos-gold)}.pos-tpl-card__default-tag{color:var(--pos-gold);background:var(--pos-gold-soft);border-radius:6px;align-self:flex-start;padding:2px 6px;font-size:10px;font-weight:600}.pos-tpl-card__actions{flex-shrink:0;gap:6px;display:flex}.pos-tpl-icon-btn{background:var(--pos-bg);border:1px solid var(--pos-border);cursor:pointer;width:30px;height:30px;color:var(--pos-gold);border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex}.pos-tpl-icon-btn--danger{color:var(--pos-danger)}.pos-tpl-icon-btn:disabled{opacity:.4;cursor:not-allowed}.pos-cond-chips{flex-wrap:wrap;gap:4px;display:flex}.pos-cond-chip{background:var(--pos-gold-soft);color:var(--pos-gold-deep);border-radius:8px;padding:3px 8px;font-size:11px;font-weight:600}.pos-cond-chip--holiday{color:#c04545;background:#e555551f}.pos-cond-chip--workshift{color:#1976d2;background:#2196f31f}.pos-cond-chip--specific{color:#2e7d32;background:#66bb6a1f}.pos-tpl-card__stats{border-top:1px solid var(--pos-border);gap:12px;padding-top:8px;display:flex}.pos-tpl-card__stats>div{flex-direction:column;gap:2px;display:flex}.pos-tpl-card__stat-label{color:var(--pos-text-muted);font-size:10px}.pos-tpl-card__stat-value{color:var(--pos-text);font-size:14px;font-weight:700}.pos-template-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pos-template-card{background:#fff;border:1px solid #f0e6d2;border-radius:10px;flex-direction:column;gap:6px;padding:14px;display:flex}.pos-template-card__head{flex-direction:column;gap:4px;display:flex}.pos-template-card__name{color:#6b5d4f;align-items:center;gap:6px;margin:0;font-size:15px;font-weight:700;display:flex}.pos-template-card__match{color:#8b7355;font-size:12px}.pos-template-card__meta{color:#b8a582;font-size:12px}.pos-template-card__actions{gap:6px;margin-top:4px;display:flex}.pos-tpl-form{flex-direction:column;gap:14px;display:flex}.pos-tpl-section{box-shadow:var(--pos-shadow-card);background:#fff;border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.pos-tpl-section__title{color:var(--pos-text-muted);font-size:13px;font-weight:700}.pos-tpl-input{background:var(--pos-bg);border:1px solid var(--pos-border);height:40px;color:var(--pos-text);border-radius:10px;outline:none;padding:0 12px;font-size:15px;font-weight:500}.pos-tpl-input:focus{border-color:var(--pos-gold);box-shadow:0 0 0 3px #d4a8531f}.pos-tpl-mode-tabs{background:var(--pos-border);border-radius:10px;gap:3px;padding:3px;display:flex}.pos-tpl-mode-tab{text-align:center;cursor:pointer;color:var(--pos-text-muted);background:0 0;border:none;border-radius:8px;flex:1;padding:7px 8px;font-size:12px;font-weight:600}.pos-tpl-mode-tab--active{color:var(--pos-text);background:#fff;box-shadow:0 1px 3px #2c231914}.pos-tpl-cond-chips{flex-wrap:wrap;gap:6px;display:flex}.pos-tpl-c-chip{background:var(--pos-bg);border:1px solid var(--pos-border);color:var(--pos-text-muted);cursor:pointer;border-radius:18px;align-items:center;gap:4px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.pos-tpl-c-chip--active{background:var(--pos-gold);color:#fff;border-color:var(--pos-gold)}.pos-tpl-c-chip--workshift.pos-tpl-c-chip--active{background:#1976d2;border-color:#1976d2}.pos-tpl-c-chip__meta{color:var(--pos-text-faint);margin-left:2px;font-size:9px;font-weight:500}.pos-tpl-c-chip--active .pos-tpl-c-chip__meta{color:#fffc}.pos-tpl-empty-hint{background:var(--pos-bg);text-align:center;border:1.5px dashed #e0d5c0;border-radius:12px;flex-direction:column;align-items:center;gap:8px;margin-bottom:6px;padding:24px 16px;display:flex}.pos-tpl-empty-hint svg{color:var(--pos-text-faint)}.pos-tpl-empty-hint__title{color:var(--pos-text-muted);font-size:14px;font-weight:600}.pos-tpl-empty-hint__desc{color:var(--pos-text-faint);font-size:11px;line-height:1.5}.pos-tpl-stats{border-top:1px solid var(--pos-border);gap:14px;margin-top:6px;padding-top:8px;display:flex}.pos-tpl-stats>div{flex-direction:column;gap:2px;display:flex}.pos-tpl-stats__label{color:var(--pos-text-muted);font-size:10px}.pos-tpl-stats__value{color:var(--pos-text);font-size:14px;font-weight:700}.pos-tpl-stats__value--muted{color:var(--pos-text-faint)}.pos-tpl-stats__value--gold{color:var(--pos-gold)}.pos-tpl-card__stat-value--gold{color:var(--pos-gold)!important}.pos-tpl-footer{padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--pos-border);background:#fff;gap:8px;display:flex}.pos-tpl-fbtn{cursor:pointer;border:none;border-radius:12px;flex:1;height:48px;font-size:15px;font-weight:700}.pos-tpl-fbtn--cancel{background:var(--pos-border);color:var(--pos-text-muted)}.pos-tpl-fbtn--save{background:var(--pos-gold);color:#fff}.pos-tpl-fbtn--save:disabled{color:#fff;cursor:not-allowed;background:#e0d5c0}.pos-tpl-mode{flex-wrap:wrap;gap:8px;display:flex}.pos-tpl-mode__opt{color:#6b5d4f;cursor:pointer;text-align:center;background:#fbf7f0;border:1px solid #f0e6d2;border-radius:8px;flex:1;min-width:100px;padding:10px 12px;font-size:13px}.pos-tpl-mode__opt input[type=radio]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.pos-tpl-mode__opt--active{color:#6b5d4f;background:#fff8e8;border-color:#d4a853;font-weight:600}.pos-tpl-weekdays{flex-wrap:wrap;gap:6px;display:flex}.pos-tpl-dates-add{align-items:center;gap:8px;margin-bottom:8px;display:flex}.pos-tpl-dates-add input[type=date]{flex:1}.pos-tpl-dates-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.pos-tpl-date-item{background:#fbf7f0;border-radius:6px;justify-content:space-between;align-items:center;padding:6px 12px;font-size:13px;display:flex}.pos-tpl-summary{text-align:center;color:#6b5d4f;background:#fff8e8;border:1px solid #f0e6d2;border-radius:8px;margin:8px 0;padding:10px 14px;font-size:14px}.pos-sync-card{color:#fff;background:linear-gradient(135deg,#d4a853,#c49a48);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin:4px 16px 12px;padding:12px 14px;display:flex}.pos-sync-card__info{flex-direction:column;gap:3px;display:flex}.pos-sync-card__source{opacity:.9;align-items:center;gap:6px;font-size:11px;display:flex}.pos-sync-card__time{font-size:13px;font-weight:600}.pos-sync-card__btn{color:#fff;cursor:pointer;background:#ffffff38;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:7px 12px;font-size:12px;font-weight:600;display:flex}.pos-sync-card__btn:hover:not(:disabled){background:#ffffff52}.pos-sync-card__btn:disabled{opacity:.6;cursor:not-allowed}.pos-year-tabs{background:#f0e6d2;border-radius:10px;gap:3px;margin:0 16px 12px;padding:3px;display:flex}.pos-y-tab{text-align:center;color:#6b5d4f;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:7px;font-size:13px;font-weight:600}.pos-y-tab.is-active{color:#3d3425;background:#fff;box-shadow:0 1px 3px #2c231914}.pos-h-list{flex-direction:column;gap:14px;padding:0 16px 16px;display:flex}.pos-h-month{flex-direction:column;gap:6px;display:flex}.pos-h-month__title{color:#6b5d4f;padding:0 4px;font-size:13px;font-weight:700}.pos-h-row{background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.pos-h-row.is-disabled{opacity:.5}.pos-h-row.is-disabled .pos-h-day{color:#c4b5a0}.pos-h-date{flex-direction:column;flex-shrink:0;align-items:center;width:42px;display:flex}.pos-h-day{color:#3d3425;font-size:20px;font-weight:800;line-height:1}.pos-h-week{color:#c4b5a0;margin-top:2px;font-size:10px;font-weight:500}.pos-h-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.pos-h-name{color:#3d3425;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.pos-h-tags{flex-wrap:wrap;gap:4px;display:flex}.pos-h-tag{border-radius:6px;padding:2px 6px;font-size:10px;font-weight:600}.pos-h-tag--holiday{color:#c04545;background:#e555551f}.pos-h-tag--workshift{color:#1976d2;background:#2196f31f}.pos-h-tag--custom{color:#2e7d32;background:#66bb6a1f}.pos-h-tag--note{color:#8b6f2d;background:#d4a85326}.pos-toggle{cursor:pointer;border:none;border-radius:10px;flex-shrink:0;align-items:center;width:36px;height:20px;padding:2px;display:flex}.pos-toggle.is-on{background:#66bb6a;justify-content:flex-end}.pos-toggle.is-off{background:#e0d5c0;justify-content:flex-start}.pos-toggle__dot{background:#fff;border-radius:8px;width:16px;height:16px}.pos-h-row__remove{color:#c04545;cursor:pointer;background:#e555551a;border:none;border-radius:8px;flex-shrink:0;width:28px;height:28px;font-size:18px;font-weight:600}.pos-h-row__remove:hover{background:#e5555533}.pos-expense-preview{flex-direction:column;align-items:center;gap:10px;padding-bottom:16px;display:flex}.pos-expense-preview__img{object-fit:contain;background:#fbf7f0;border:1px solid #f0e6d2;border-radius:10px;max-width:100%;max-height:360px}.not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:2rem;display:flex}.not-found__code{color:var(--border,#ddd);letter-spacing:-4px;font-size:8rem;font-weight:800;line-height:1}.not-found__title{color:var(--text,#333);margin:.5rem 0;font-size:1.5rem;font-weight:600}.not-found__desc{color:var(--text-muted,#888);margin-bottom:1.5rem}.expired-overlay{z-index:900;background:#ffffff8c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.expired-overlay__card{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:420px;padding:48px 40px;box-shadow:0 8px 32px #0000001f}.expired-overlay__icon{color:#e67e22;margin-bottom:16px}.expired-overlay__title{color:#1a1a2e;margin:0 0 12px;font-size:1.5rem;font-weight:700}.expired-overlay__desc{color:#666;margin:0 0 28px;font-size:.95rem;line-height:1.6}.expired-overlay__btn{padding:12px 36px;font-size:1rem}.app-main--v3{position:relative}.sidebar__nav-item--expired,.topnav__link--expired,.topnav__dropdown-link--expired{opacity:.35;pointer-events:none;cursor:not-allowed;-webkit-user-select:none;user-select:none}.hamburger-btn{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:36px;height:36px;padding:6px;display:none}.hamburger-btn span{background:var(--text);border-radius:2px;width:20px;height:2px;display:block}.sidebar__close-btn{color:#fff9;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1;display:none;position:absolute;top:16px;right:12px}.sidebar__close-btn:hover{color:#fff}.app-main__topbar{align-items:center;gap:12px;margin-bottom:16px;display:none}.app-main__topbar-title{color:var(--text);align-items:center;gap:6px;font-size:18px;font-weight:700;display:flex}.sidebar-overlay{z-index:199;cursor:pointer;background:#00000073;border:none;width:100%;padding:0;display:none;position:fixed;inset:0}@media (width<=1040px){.dashboard__crm-row{grid-template-columns:1fr}}@media (width<=1000px){.dashboard__chart-grid,.dashboard__cards{grid-template-columns:1fr}}@media (width<=768px){.sidebar-overlay--visible{display:block}.sidebar{z-index:200;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar__header{position:relative}.sidebar__close-btn{display:block}.hamburger-btn{display:inline-flex}.app-main__topbar{display:flex}.app-main{padding:16px}.form-grid,.contact-form .form-grid,.project-edit-section .form-grid{grid-template-columns:1fr!important}.detail-summary{grid-template-columns:1fr 1fr}.invoice-summary{flex-wrap:wrap;gap:20px}.modal,.modal--lg,.modal--xl{max-width:100%}.modal-overlay{padding:10px}.fixed-expense-block__summary{flex-wrap:wrap}.fixed-expense-block__card{flex:auto;min-width:auto}.page__header{flex-wrap:wrap;gap:8px}}@media (width<=480px){.app-main{padding:12px}.detail-summary{grid-template-columns:1fr}.modal-overlay{padding:4px}.page__title{font-size:18px}.table th,.table td{padding:6px 8px;font-size:13px}.contact-card__header{flex-wrap:wrap}.login-card{max-width:400px;margin:0 16px;width:100%!important}}
