/* FUTURUSS SPA shell — local only, namespaced to avoid touching the calculator design. */
[v-cloak]{display:none!important}
html.app-booting,html.app-booting body{background:#f3f5f7!important}
html.app-booting #legacyCalculatorRoute,html.app-booting #spaApp{visibility:hidden!important}
#appPreloader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:#f3f5f7;color:#253745;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;transition:opacity .18s ease,visibility .18s ease}
#appPreloader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.preloader-card{width:min(390px,calc(100vw - 36px));padding:28px 26px;text-align:center;background:#fff;border:1px solid #dce2e7;border-radius:14px;box-shadow:0 18px 60px rgba(37,55,69,.08)}
.preloader-mark{width:48px;height:48px;margin:0 auto 16px;border-radius:13px;background:#087f8c;display:grid;place-items:center;color:#fff;font-weight:800;font-size:18px;letter-spacing:.02em}
.preloader-spinner{width:24px;height:24px;margin:0 auto 14px;border:2px solid #d5e5e8;border-top-color:#087f8c;border-radius:50%;animation:futu-spin .8s linear infinite}
.preloader-title{font-size:16px;font-weight:750;margin:0 0 5px}.preloader-text{font-size:12px;color:#71828e;line-height:1.5;margin:0}
@keyframes futu-spin{to{transform:rotate(360deg)}}
#legacyCalculatorRoute[hidden],#spaApp[hidden]{display:none!important}

/* Calculator SPA session mount. */
#futurussSessionMount{display:flex;align-items:center;gap:8px;margin-left:0}
.session-pill{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:600 12px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;padding:8px 11px;border:1px solid #ded9e3;border-radius:9px;background:#fff;color:#5b5363;box-shadow:0 1px 3px #2d20330a;cursor:pointer;white-space:nowrap;text-decoration:none}
.session-pill:hover{color:var(--accent,#087f8c);border-color:#bba9da;background:#faf7ff}.session-pill.primary{background:#087f8c;color:#fff;border-color:#087f8c}.session-pill.icon-only{width:38px;height:38px;padding:0}

/* SPA modal/login shell. */
.spa-modal-backdrop{position:fixed;inset:0;z-index:6000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(30,46,58,.42);backdrop-filter:blur(2px)}
.spa-modal{width:min(470px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border:1px solid #d9e2e8;border-radius:14px;box-shadow:0 24px 70px rgba(31,48,59,.22);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#253745}
.spa-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px;border-bottom:1px solid #e4eaee}.spa-modal-head h2{font-size:18px;margin:0}.spa-modal-head p{margin:4px 0 0;color:#71828e;font-size:12px;line-height:1.45}.spa-modal-body{padding:16px 18px}.spa-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 18px}
.spa-field{margin-bottom:12px}.spa-field>label{display:block;margin-bottom:5px;font-size:11px;color:#667785}.spa-field input,.spa-field textarea{box-sizing:border-box;width:100%;padding:10px 11px;border:1px solid #cbd6de;border-radius:8px;font:inherit;color:#253745;background:#fff}.spa-field textarea{min-height:78px;resize:vertical}
.spa-password{position:relative}.spa-password input{padding-right:45px}.spa-password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:#607581;cursor:pointer;border-radius:7px;display:flex;align-items:center;justify-content:center}.spa-password-toggle:hover{background:#eef4f6;color:#087f8c}
.spa-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px}.spa-auth-tabs button{padding:9px;border:1px solid #d8e1e7;border-radius:8px;background:#fff;color:#34495a;cursor:pointer}.spa-auth-tabs button.active{background:#e7f4f5;color:#087f8c;border-color:#8ebcc1;font-weight:700}
.spa-error{min-height:18px;margin-top:7px;color:#b42318;font-size:11px}.spa-helper{font-size:11px;color:#7c8c96;line-height:1.45;margin-top:6px}

/* Management view (Central / Dealer / Subdealer only). */
.management-view{min-height:100vh;background:#f3f6f8;color:#253745;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:14px}.management-view *{box-sizing:border-box}.management-wrap{max-width:1180px;margin:0 auto;padding:18px}.management-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.management-identity{display:flex;align-items:center;gap:12px;min-width:0}.management-brand{background:#087f8c;color:#fff;padding:11px 15px;border-radius:9px;font-weight:750;white-space:nowrap}.management-role{color:#71828e;white-space:nowrap}.management-top-actions{display:flex;gap:8px}.management-view .btn{display:inline-flex;align-items:center;justify-content:center;gap:0;appearance:none;padding:9px 13px;border:1px solid #cbd6de;border-radius:8px;background:#fff;color:#34495a;cursor:pointer;text-decoration:none;font:inherit;line-height:1.2}.management-view .btn:hover{background:#f8fafb}.management-view .btn.primary{background:#087f8c;color:#fff;border-color:#087f8c}.management-view .btn.primary:hover{background:#076f7a}.management-view .btn.danger{background:#fff5f4;color:#a63b32;border-color:#e8b8b2}.management-view .btn.danger-solid{background:#b94136;color:#fff;border-color:#b94136}.management-view .btn:disabled{opacity:.55;cursor:not-allowed}
.management-nav{display:flex;gap:8px;border-bottom:1px solid #d9e2e8;margin-bottom:14px}.management-nav-link{display:inline-flex;align-items:center;position:relative;border:0;background:transparent;padding:12px 4px 11px;color:#657784;font:inherit;font-weight:650;cursor:pointer;margin-right:18px;text-decoration:none}.management-nav-link.router-link-active{color:#087f8c}.management-nav-link.router-link-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#087f8c;border-radius:2px}.management-nav-link.soon{cursor:not-allowed;color:#9aa7af}.soon-badge{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;background:#edf1f4;color:#82909a;font-size:10px;font-weight:700}
.management-card{background:#fff;border:1px solid #d9e2e8;border-radius:10px}.management-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 13px;border-bottom:1px solid #e2e9ed}.management-section-head h1{font-size:18px;margin:0 0 4px}.management-section-head p{margin:0;color:#71828e;font-size:12px;line-height:1.45}.management-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.management-content{padding:14px 16px 18px}.management-notice{padding:10px 12px;border:1px solid #d7e3e8;background:#f6fafb;border-radius:8px;font-size:12px;line-height:1.45;margin-bottom:12px}.management-notice.danger{border-color:#f0c8c3;background:#fff7f6;color:#a63b32}.management-empty{padding:52px 18px;text-align:center;color:#7c8c96}.management-empty strong{display:block;color:#405360;font-size:15px;margin-bottom:6px}
.management-tree{display:flex;flex-direction:column;gap:8px}.management-node{border:1px solid #dce5ea;border-radius:9px;background:#fff;overflow:visible;position:relative}.management-node-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center;padding:11px 12px}.management-node-main{min-width:0}.management-node-title-line{display:flex;align-items:center;gap:7px;min-width:0}.management-node-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.management-tag{display:inline-flex;align-items:center;padding:3px 7px;border-radius:6px;background:#eef4f6;color:#47626f;font-size:10px;font-weight:750;white-space:nowrap}.management-tag.client{background:#f1edfb;color:#6749a3}.management-meta{font-size:11px;color:#71828e;margin-top:4px}.management-node-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.management-switch-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#5f727e;white-space:nowrap}.management-switch-label input{width:auto}.management-state{font-size:10px;padding:3px 6px;border-radius:999px;background:#eef7f1;color:#31734b}.management-state.blocked{background:#fff0ee;color:#9d4036}.management-children{margin:0 0 10px 24px;padding-left:10px;border-left:1px solid #dce5ea}.management-children>.management-node{margin:7px 10px 0 0}
.more-menu{position:relative}.more-menu>summary{list-style:none}.more-menu>summary::-webkit-details-marker{display:none}.more-button{width:36px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid #cbd6de;border-radius:8px;background:#fff;color:#536874;cursor:pointer}.more-button:hover{background:#f4f8fa;color:#087f8c}.more-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:160px;padding:6px;background:#fff;border:1px solid #d8e2e8;border-radius:10px;box-shadow:0 12px 30px rgba(35,55,67,.16)}.more-item{display:flex;align-items:center;gap:0;width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:7px;color:#34495a;cursor:pointer;font:inherit;font-size:12px}.more-item:hover{background:#f1f6f8}.more-item.danger{color:#a63b32}.more-item.danger:hover{background:#fff0ee}
.management-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.management-type-btn{padding:10px;border:1px solid #cbd6de;background:#fff;border-radius:8px;cursor:pointer;font:inherit}.management-type-btn.active{border-color:#71b6be;background:#eaf6f7;color:#087f8c;font-weight:700}.management-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.management-check-card{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #d9e2e8;border-radius:8px;font-size:12px;color:#536874}.management-check-card input{width:auto}.management-secret{padding:12px;background:#fff7d7;border:1px solid #e4ca66;border-radius:8px;word-break:break-all;line-height:1.5}.management-secret b{display:block;margin-bottom:4px}.management-import-status{margin-top:10px}.management-toast{position:fixed;right:20px;bottom:20px;z-index:6100;background:#243946;color:#fff;padding:11px 14px;border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:12px}

/* Public data/price state. */
.catalog-empty-banner{margin:0 0 10px;padding:10px 12px;border:1px solid #d9e2e8;border-radius:8px;background:#f7fafb;color:#526875;font-size:12px;line-height:1.45}.catalog-empty-banner strong{display:block;color:#253745;margin-bottom:2px}
body.catalog-empty #scheme,body.catalog-empty #width,body.catalog-empty #height,body.catalog-empty #qtyRight,body.catalog-empty #qtyLeft,body.catalog-empty button.calc{opacity:.6;pointer-events:none}
body.price-hidden #combined-card table thead th:nth-child(5),body.price-hidden #combined-card table thead th:nth-child(6),body.price-hidden #combined-card table tbody td:nth-child(5),body.price-hidden #combined-card table tbody td:nth-child(6),body.price-hidden #positions-container table thead th:nth-child(5),body.price-hidden #positions-container table thead th:nth-child(6),body.price-hidden #positions-container table tbody td:nth-child(5),body.price-hidden #positions-container table tbody td:nth-child(6){display:none!important}
body.price-hidden #positions-container tfoot,body.price-hidden #inv-grand-total,body.price-hidden #combined-card table tfoot,body.price-hidden .g-price,body.price-hidden #edit-cell-price,body.price-hidden label[for="edit-cell-price"]{display:none!important}body.price-hidden .price-default{display:none!important}body.price-hidden #exportInvoice1C{display:none!important}.price-locked-note{display:none;margin:8px 0 0;font-size:11px;color:#6b7280}body.price-hidden .price-locked-note{display:block}

@media(max-width:760px){.management-wrap{padding:12px}.management-topbar,.management-section-head{align-items:stretch;flex-direction:column}.management-top-actions,.management-toolbar{width:100%}.management-top-actions .btn,.management-toolbar .btn{flex:1;text-align:center}.management-node-row{grid-template-columns:1fr}.management-node-actions{justify-content:flex-start}.management-children{margin-left:10px}.spa-modal-backdrop{padding:8px}.spa-modal{max-height:calc(100vh - 16px)}.management-checks{grid-template-columns:1fr}}
/* Runtime component class aliases used by the SPA templates. */
.spa-btn{display:inline-flex;align-items:center;justify-content:center;gap:0;appearance:none;padding:9px 13px;border:1px solid #cbd6de;border-radius:8px;background:#fff;color:#34495a;cursor:pointer;text-decoration:none;font:inherit;line-height:1.2}.spa-btn:hover{background:#f8fafb}.spa-btn.primary{background:#087f8c;color:#fff;border-color:#087f8c}.spa-btn.primary:hover{background:#076f7a}.spa-btn.danger-solid{background:#b94136;color:#fff;border-color:#b94136}.spa-btn:disabled{opacity:.55;cursor:not-allowed}.spa-btn.compact{padding:6px 9px;font-size:11px}.spa-btn.full{width:100%}.spa-icon-btn{width:36px;height:36px;border:1px solid #d7e0e6;border-radius:9px;background:#fff;color:#61737f;cursor:pointer;display:flex;align-items:center;justify-content:center}
.field{margin-bottom:12px}.field>label,.spa-modal-body>label{display:block;margin:8px 0 5px;font-size:11px;color:#667785}.field input,.field textarea,.spa-modal-body>input,.spa-modal-body .spa-password-wrap input{box-sizing:border-box;width:100%;padding:10px 11px;border:1px solid #cbd6de;border-radius:8px;font:inherit;color:#253745;background:#fff;appearance:none;-webkit-appearance:none}.field textarea{min-height:78px;resize:vertical}.spa-password-wrap{position:relative;width:100%}.spa-password-wrap input{display:block;width:100%;padding-right:45px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px}.auth-tabs button{padding:9px;border:1px solid #d8e1e7;border-radius:8px;background:#fff;color:#34495a;cursor:pointer}.auth-tabs button.active{background:#e7f4f5;color:#087f8c;border-color:#8ebcc1;font-weight:700}.session-info{cursor:default;background:#f7fafb}
.management-actions{display:flex;gap:8px}.management-nav-btn{display:inline-flex;align-items:center;position:relative;padding:12px 4px 11px;color:#657784;font-weight:650;margin-right:18px;text-decoration:none}.management-nav-btn.router-link-active{color:#087f8c}.management-nav-btn.router-link-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#087f8c;border-radius:2px}.file-btn{cursor:pointer}.tree{display:flex;flex-direction:column;gap:8px}.node{border:1px solid #dce5ea;border-radius:9px;background:#fff;overflow:visible;position:relative}.node-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center;padding:11px 12px}.node-main{min-width:0}.node-title-line{display:flex;align-items:center;gap:7px;min-width:0}.node-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag{display:inline-flex;align-items:center;padding:3px 7px;border-radius:6px;background:#eef4f6;color:#47626f;font-size:10px;font-weight:750;white-space:nowrap}.tag.client{background:#f1edfb;color:#6749a3}.meta{font-size:11px;color:#71828e;margin-top:4px}.node-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.switch-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#5f727e;white-space:nowrap}.switch-label input{width:auto}.state{font-size:10px;padding:3px 6px;border-radius:999px;background:#eef7f1;color:#31734b}.state.blocked{background:#fff0ee;color:#9d4036}.children{margin:0 0 10px 24px;padding-left:10px;border-left:1px solid #dce5ea}.children>.node{margin:7px 10px 0 0}.type-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.type-btn{padding:10px;border:1px solid #cbd6de;background:#fff;border-radius:8px;cursor:pointer;font:inherit}.type-btn.active{border-color:#71b6be;background:#eaf6f7;color:#087f8c;font-weight:700}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.check-card{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #d9e2e8;border-radius:8px;font-size:12px;color:#536874}.check-card input{width:auto}.secret{padding:12px;background:#fff7d7;border:1px solid #e4ca66;border-radius:8px;word-break:break-all;line-height:1.5}.secret b{display:block;margin-bottom:4px}
.standalone-view{min-height:100vh;display:grid;place-items:center;padding:22px;background:#f3f6f8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#253745}.standalone-card{width:min(430px,100%);padding:24px;background:#fff;border:1px solid #d9e2e8;border-radius:14px;box-shadow:0 18px 54px rgba(35,55,67,.10)}.standalone-card h1{margin:16px 0 8px;font-size:22px}.standalone-brand{display:inline-block;padding:8px 11px;background:#087f8c;color:#fff;border-radius:8px;font-weight:750}.standalone-hint{margin:0 0 16px;color:#71828e;font-size:12px;line-height:1.5}.standalone-actions{display:flex;gap:8px;margin-top:12px}.standalone-actions>*{flex:1}
@media(max-width:760px){.node-row{grid-template-columns:1fr}.node-actions{justify-content:flex-start}.children{margin-left:10px}.management-actions{width:100%}.management-actions>*{flex:1}.checks{grid-template-columns:1fr}}

/* 2026.09.23.7: stable management navigation. */
.management-nav-btn.soon{cursor:default;color:#9aa7af!important;pointer-events:none;user-select:none}
.management-nav-btn.soon:after{display:none!important}
.management-nav-btn .ui-icon{flex:0 0 auto}

/* 2026.09.23.8: password fields inside SPA auth modals use the same input geometry as login fields. */

/* 2026.09.23.9 — languages, global themes and login availability */
.language-control{display:inline-flex;align-items:center;gap:6px;margin:0!important;color:#667085;font-size:11px;white-space:nowrap}
.language-control>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.language-control select{width:auto!important;min-width:92px;height:34px!important;padding:5px 25px 5px 9px!important;border:1px solid #ccd6df!important;border-radius:8px!important;background:#fff!important;color:#344054!important;font-size:12px!important}
.login-availability{min-height:18px;margin-top:4px;font-size:11px;color:#667085}.login-availability.available{color:#1f7a4d}.login-availability.taken{color:#b42318}.login-availability.checking{color:#526d82}
.secret small{display:block;margin-top:8px;color:#667085;line-height:1.4}
.standalone-brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.standalone-brand-row .standalone-brand{margin:0}
.theme-admin-modal{width:min(620px,calc(100vw - 28px))}.admin-theme-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.admin-theme-card{display:grid;gap:8px;justify-items:start;padding:10px!important;background:#fff!important;border:2px solid #e2e8f0!important;border-radius:12px!important;color:#344054!important;cursor:pointer}.admin-theme-card.active{border-color:#087f8c!important;box-shadow:0 0 0 3px #087f8c1f}.theme-swatch{display:block;width:100%;height:54px;border-radius:8px;border:1px solid #d6dde5;background:linear-gradient(180deg,#fff 0 24%,#f3f5f7 24%)}.swatch-soft{background:linear-gradient(145deg,#fff,#eef2f7);border-radius:14px;box-shadow:inset 0 0 0 1px #fff}.swatch-easy{background:linear-gradient(180deg,#fff 0 24%,#eff6ff 24%);border-color:#bfdbfe}.swatch-glossy{background:linear-gradient(135deg,#dff9fbcc,#ffffff99 48%,#e8e5ffcc);box-shadow:inset 0 1px 0 #fff}.swatch-material{background:linear-gradient(180deg,#fff 0 25%,#f7f2fa 25%);border-color:#d0c5d8;box-shadow:0 2px 5px #0002}
@media(max-width:720px){.admin-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.language-control select{min-width:76px}.management-actions{gap:5px!important}}

/* 2026.09.23.10 — theme chooser previews mirror the four distinct visual systems. */
.swatch-soft{background:linear-gradient(180deg,#ffffff 0 27%,#f5f5f7 27%)!important;border:1px solid #e5e5ea!important;border-radius:16px!important;box-shadow:0 5px 16px #00000010!important}
.swatch-easy{background:linear-gradient(180deg,#1565c0 0 25%,#eef5fb 25%)!important;border:2px solid #9dbbd3!important;border-radius:7px!important;box-shadow:none!important}
.swatch-glossy{background:radial-gradient(circle at 10% 0,#8fe8ef,transparent 42%),radial-gradient(circle at 90% 10%,#c9baff,transparent 38%),linear-gradient(145deg,#ffffffc7,#e7f5f499)!important;border:1px solid #ffffffdd!important;border-radius:18px!important;box-shadow:0 9px 22px #355d7333,inset 0 1px 0 #fff!important}
.swatch-material{background:linear-gradient(180deg,#6750a4 0 24%,#f7f2fa 24% 66%,#e8def8 66%)!important;border:0!important;border-radius:12px!important;box-shadow:0 2px 6px #1d1b2028!important}
