:root{--tf-brown-950: #161210;--tf-brown-900: #1c1815;--tf-brown-800: #221c18;--tf-brown-700: #282220;--tf-brown-600: #302924;--tf-brown-500: #3a322c;--tf-card: #1c1c1e;--tf-card-elevated: #242426;--tf-card-muted: #2c2c2e;--tf-gray-950: var(--tf-brown-950);--tf-gray-900: var(--tf-brown-900);--tf-gray-800: var(--tf-card);--tf-gray-700: var(--tf-card-elevated);--tf-gray-600: var(--tf-card-muted);--tf-sidebar: var(--tf-brown-950);--tf-sidebar-hover: rgba(255, 255, 255, .05);--tf-sidebar-border: rgba(255, 255, 255, .07);--tf-sidebar-muted: rgba(181, 169, 163, .88);--tf-sidebar-text: rgba(245, 245, 245, .92);--tf-canvas: var(--tf-brown-950);--tf-bg: var(--tf-canvas);--tf-canvas-mesh: radial-gradient(1200px 600px at 8% -10%, rgba(230, 81, 0, .1), transparent 55%), radial-gradient(900px 500px at 100% 0%, rgba(180, 90, 40, .06), transparent 50%), linear-gradient(165deg, var(--tf-brown-900) 0%, var(--tf-brown-950) 42%, #12100e 100%);--tf-surface: var(--tf-card);--tf-surface-elevated: var(--tf-card-elevated);--tf-surface-muted: var(--tf-card-muted);--tf-surface-hover: rgba(255, 255, 255, .06);--tf-text: #f5f5f5;--tf-text-secondary: #aeaeb2;--tf-text-muted: #7a6f6a;--tf-border: rgba(255, 255, 255, .08);--tf-border-strong: rgba(255, 255, 255, .12);--tf-accent: #e65100;--tf-accent-strong: #d35400;--tf-accent-soft: rgba(230, 81, 0, .14);--tf-accent-glow: rgba(230, 81, 0, .35);--tf-accent-border: rgba(230, 81, 0, .32);--tf-accent-border-strong: rgba(230, 81, 0, .48);--tf-input-bg: var(--tf-card-elevated);--tf-warning: #f59e0b;--tf-warning-soft: rgba(245, 158, 11, .12);--tf-warning-border: rgba(245, 158, 11, .35);--tf-warning-text: #fbbf24;--tf-warning-surface: rgba(251, 191, 36, .1);--tf-info: #38bdf8;--tf-info-soft: rgba(56, 189, 248, .1);--tf-info-border: rgba(56, 189, 248, .35);--tf-danger: #f87171;--tf-danger-soft: rgba(248, 113, 113, .12);--tf-radius-sm: 10px;--tf-radius: 14px;--tf-radius-lg: 22px;--tf-shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--tf-shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--tf-shadow-lg: 0 18px 50px rgba(0, 0, 0, .45);--tf-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tf-transition-fast: .18s ease;--tf-transition: .24s cubic-bezier(.4, 0, .2, 1);--tf-safe-top: env(safe-area-inset-top, 0px);--tf-safe-bottom: env(safe-area-inset-bottom, 0px);--tf-safe-left: env(safe-area-inset-left, 0px);--tf-safe-right: env(safe-area-inset-right, 0px);--tf-dock-reserve: calc( .4rem + .7rem + 1.375rem + .22rem + .65rem + .45rem + var(--tf-safe-bottom) );--tf-set-save-bar-reserve: 4.35rem }html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}@supports (-webkit-touch-callout: none){@media (display-mode: standalone){.tf-app--immersive .tf-main-col{height:100svh;max-height:100svh}}}body{overflow-x:hidden;max-width:100%}.cw,.cw-slot,.cw-head,.cw-tabs-clip,.cw-tabs-scroll{max-width:100%}.tf-animate-in{animation:tf-fade-slide .45s cubic-bezier(.22,1,.36,1) forwards}@keyframes tf-fade-slide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.sub{max-width:960px;margin:0 auto;padding-bottom:2rem}.sub-hero{margin-bottom:1.75rem}.sub-kicker{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tf-accent-strong);background:var(--tf-accent-soft);padding:.35rem .65rem;border-radius:999px;margin-bottom:.65rem}.sub-title{margin:0;font-size:clamp(1.6rem,4vw,2rem);font-weight:800;letter-spacing:-.03em;color:var(--tf-text);line-height:1.15}.sub-lead{margin:.5rem 0 0;max-width:52ch;font-size:1rem;line-height:1.55;color:var(--tf-text-secondary)}.loading-state{text-align:center;padding:3rem 1rem;border-radius:var(--tf-radius-lg);border:1px dashed var(--tf-border);background:var(--tf-surface);color:var(--tf-text-secondary);font-weight:500}.card{background:var(--tf-surface);border:1px solid var(--tf-border);padding:1.35rem 1.35rem 1.45rem;border-radius:var(--tf-radius-lg);box-shadow:var(--tf-shadow-md);margin-bottom:1.15rem}.card h2{font-size:1.05rem;font-weight:700;color:var(--tf-text);margin:0 0 1rem;letter-spacing:-.02em}.muted{color:var(--tf-text-secondary);margin:0;line-height:1.5}.muted.small{font-size:.875rem}.empty-inline{color:var(--tf-text-secondary);font-size:.95rem;padding:.75rem 0}.banner{padding:.95rem 1.1rem;border-radius:var(--tf-radius);margin-bottom:1rem;font-size:.92rem;font-weight:500;line-height:1.45}.banner-success{background:var(--tf-accent-soft);color:var(--tf-accent-strong);border:1px solid var(--tf-accent-border)}.banner-error{background:var(--tf-danger-soft);color:var(--tf-danger);border:1px solid rgba(244,63,94,.25)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem}.field-grid--1{grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.field-span2{grid-column:1 / -1}.field-label{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--tf-text-secondary)}.input,.textarea,.form-input,select{font:inherit;border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm);padding:.62rem .75rem;background:var(--tf-input-bg);color:var(--tf-text);transition:border-color var(--tf-transition-fast),box-shadow var(--tf-transition-fast)}.input:focus,.textarea:focus,.form-input:focus,select:focus{outline:none;border-color:var(--tf-accent-border-strong);box-shadow:0 0 0 3px var(--tf-accent-soft)}.input::placeholder,.textarea::placeholder,.form-input::placeholder{color:var(--tf-text-muted)}input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{color-scheme:dark}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;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='%23a0938e' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;padding-right:2rem}select option{background:var(--tf-card);color:var(--tf-text)}.textarea{resize:vertical;min-height:5rem;line-height:1.5}.form-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.35rem}.form-error{margin:.35rem 0 0;padding:.55rem .75rem;border-radius:var(--tf-radius-sm);background:var(--tf-danger-soft);color:var(--tf-danger);font-size:.86rem;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.7rem 1.15rem;border:none;border-radius:var(--tf-radius-sm);font-weight:600;font-family:inherit;cursor:pointer;font-size:.92rem;line-height:1.2;text-decoration:none;transition:transform var(--tf-transition-fast),box-shadow var(--tf-transition-fast),background var(--tf-transition-fast)}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--tf-accent),var(--tf-accent-strong));color:#fff;box-shadow:0 4px 14px var(--tf-accent-glow)}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px var(--tf-accent-glow),0 0 0 1px #ffffff40 inset}.btn-primary:disabled{opacity:.58;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--tf-surface-hover);color:var(--tf-text);border:1px solid var(--tf-border)}.btn-secondary:hover:not(:disabled){background:#ffffff12}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:.48rem .85rem;font-size:.82rem}.btn-text{border:none;background:none;font:inherit;font-weight:600;font-size:.82rem;cursor:pointer;color:var(--tf-text-secondary);padding:.35rem .25rem}.btn-text.danger{color:var(--tf-danger)}.btn-text:hover:not(:disabled){opacity:.85}input[type=checkbox],input[type=radio]{width:1.1rem;height:1.1rem;flex-shrink:0;margin:0;accent-color:var(--tf-accent);cursor:pointer}@media (max-width: 540px){.field-grid{grid-template-columns:1fr}.field-span2{grid-column:auto}}.spf{display:flex;flex-direction:column;gap:1rem}.spf-card{display:flex;flex-direction:column;gap:.75rem;padding:.85rem .9rem;border-radius:var(--tf-radius-sm, var(--uf-radius-sm, 10px));background:var(--tf-surface-muted, #2c2c2e);border:1px solid var(--tf-border, var(--uf-border, rgba(255, 255, 255, .08)))}.spf-card-title{margin:0;font-size:.68rem;font-weight:700;letter-spacing:.03em;color:var(--tf-text-secondary, var(--uf-text-secondary, #64748b))}.spf-field{display:flex;flex-direction:column;gap:.28rem;min-width:0}.spf-field-label{font-size:.68rem;font-weight:700;letter-spacing:.03em;color:var(--tf-text-secondary, var(--uf-text-secondary, #64748b));line-height:1.2}.spf-select,.spf-input,.spf-textarea{width:100%;min-width:0;padding:.5rem .55rem;border:1px solid var(--tf-border, var(--uf-border, rgba(15, 23, 42, .08)));border-radius:8px;font-family:inherit;font-size:.88rem;background:var(--tf-input-bg, #242426);color:var(--tf-text, #f5f5f5);transition:border-color .15s ease}.spf-textarea{resize:vertical;min-height:4.5rem}.spf-select:focus,.spf-input:focus,.spf-textarea:focus{outline:none;border-color:var(--tf-accent-border-strong, rgba(230, 81, 0, .48));box-shadow:0 0 0 3px var(--tf-accent-soft, rgba(230, 81, 0, .14))}.spf-readonly{padding:.5rem .55rem;border-radius:8px;background:var(--tf-surface-muted, #2c2c2e);border:1px solid var(--tf-border, rgba(255, 255, 255, .08));font-size:.88rem;font-weight:600;color:var(--tf-text, #f5f5f5);line-height:1.4}.spf-readonly--amber{background:var(--tf-warning-surface);border-color:var(--tf-warning-border);color:var(--tf-warning-text)}.spf-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.spf-metrics--2{grid-template-columns:repeat(2,minmax(0,1fr))}.spf-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.65rem .45rem;align-items:end}.spf-row-2 .spf-field-label{min-height:2.4em;display:block}@media (max-width: 480px){.spf-row-2{grid-template-columns:1fr;align-items:stretch}.spf-row-2 .spf-field-label{min-height:0}}.spf-hint{margin:0;font-size:.82rem;line-height:1.45;color:var(--tf-text-secondary, var(--uf-text-secondary, #64748b))}.spf-hint--warn{color:#b45309;font-weight:600}.spf-check,.spf-radio{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:600;color:var(--tf-text, var(--uf-text, #0f172a));cursor:pointer}.spf-check input,.spf-radio input{accent-color:var(--tf-accent-strong, var(--uf-accent-strong, #e65100))}.spf-radio-list{display:flex;flex-direction:column;gap:.4rem}.spf-kv{margin:0;display:flex;flex-direction:column;gap:0}.spf-kv-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.45rem 0;border-bottom:1px solid var(--tf-border, var(--uf-border, rgba(15, 23, 42, .08)))}.spf-kv-row:last-child{border-bottom:none}.spf-kv-row dt{margin:0;font-size:.82rem;font-weight:600;color:var(--tf-text-secondary, var(--uf-text-secondary, #64748b))}.spf-kv-row dd{margin:0;font-size:.9rem;font-weight:700;color:var(--tf-text, var(--uf-text, #0f172a));text-align:right}.spf-photo{width:100%;max-height:200px;object-fit:contain;border-radius:8px;background:var(--tf-surface-muted, #2c2c2e)}.spf-error{margin:0;padding:.55rem .75rem;border-radius:var(--tf-radius-sm, var(--uf-radius-sm, 10px));background:var(--tf-danger-soft, var(--uf-danger-soft, rgba(244, 63, 94, .1)));color:var(--tf-danger, var(--uf-danger, #f43f5e));font-size:.86rem;font-weight:500}.spf-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;width:100%}.spf-footer--split{justify-content:space-between}@media (max-width: 520px){.spf-footer--split{flex-direction:column;align-items:stretch}.spf-footer--split .spf-footer-actions{margin-left:0;width:100%}.spf-footer--split .spf-footer-actions .spf-btn{flex:1;min-width:0}.spf-footer--split>.spf-btn{width:100%}}.spf-footer-actions{display:flex;gap:.6rem;margin-left:auto}.spf-footer--stack .spf-footer-actions,.spf-footer--stack .spf-footer-actions--grow{margin-left:0;width:100%}.spf-footer-actions--grow .spf-btn{flex:1;min-width:0}.spf-btn-block{width:100%}.spf-btn-lg{padding:.78rem 1.15rem;font-size:.95rem}.spf-btn-sm{padding:.45rem .85rem;font-size:.82rem}.spf-footer--primary-first>.spf-btn-primary.spf-btn-block{order:-1}.spf-footer-secondary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.spf-footer-secondary:has(:only-child){justify-content:center}.spf-btn-text{padding:.35rem .25rem;font-size:.8rem;font-weight:600;background:transparent;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.spf-btn-text:hover:not(:disabled){opacity:.85}.spf-btn-text-warn{color:#b45309}.spf-btn-text-danger{color:#dc2626}.spf-btn{padding:.6rem 1.1rem;border-radius:var(--tf-radius-sm, var(--uf-radius-sm, 10px));font-family:inherit;font-size:.88rem;font-weight:700;cursor:pointer;border:none;transition:transform .15s ease,opacity .15s ease}.spf-btn:active:not(:disabled){transform:scale(.98)}.spf-btn:disabled{opacity:.55;cursor:not-allowed}.spf-btn-ghost{background:var(--tf-surface-hover);color:var(--tf-text);border:1px solid var(--tf-border)}.spf-btn-ghost:hover:not(:disabled){background:var(--tf-surface-muted)}.spf-btn-primary{color:#fff;background:linear-gradient(135deg,var(--tf-accent, var(--uf-accent, #10b981)),var(--tf-accent-strong, var(--uf-accent-strong, #059669)));box-shadow:0 4px 14px var(--tf-accent-glow, var(--uf-accent-glow, rgba(52, 211, 153, .35)))}.spf-btn-danger{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626)}.spf-btn-warn{color:#92400e;background:#f59e0b26;border:1px solid rgba(245,158,11,.35)}.spf-field .app-select{width:100%}.spf-field .app-select-trigger{padding:.5rem .55rem;border-radius:8px;font-size:.88rem;border:1px solid var(--tf-border, var(--uf-border, rgba(15, 23, 42, .08)))}.spf-field .app-select-trigger.open{border-color:var(--tf-accent-border-strong);box-shadow:0 0 0 3px var(--tf-accent-soft)}.spf-metrics .spf-input{text-align:center}.spf-rest-row{display:flex;align-items:center;gap:.5rem}.spf-rest-input{max-width:5.5rem}.spf-rest-unit{font-size:.86rem;font-weight:600;color:var(--tf-text-secondary, var(--uf-text-secondary, #64748b))}.spf-footer--stack{flex-direction:column;align-items:stretch}.spf-scanner-frame{position:relative;border-radius:var(--tf-radius-sm, var(--uf-radius-sm, 10px));overflow:hidden;background:#0f172a;min-height:280px}.spf-scanner-video{width:100%;height:clamp(280px,45vh,420px);object-fit:cover;display:block}.spf-scanner-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem;font-weight:600;color:#e2e8f0;background:#0f172abd}.spf-scanner-state-err{color:#fecaca}@media (max-width: 480px){.spf-metrics{grid-template-columns:1fr 1fr}}.sp-root[data-v-11c70b10]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;justify-content:flex-end}.sp-dock-slot[data-v-11c70b10]{display:flex;flex-direction:column;min-height:0;height:100%}.sp-backdrop[data-v-11c70b10]{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.sp-panel[data-v-11c70b10]{position:relative;z-index:1;width:100%;height:100%;max-height:100dvh;display:flex;flex-direction:column;background:var(--tf-surface-elevated, var(--uf-surface-elevated, #fff));border-left:1px solid var(--tf-border, var(--uf-border, rgba(15, 23, 42, .08)));box-shadow:-12px 0 40px #0f172a1f}.sp-panel--dock[data-v-11c70b10]{position:sticky;top:0;max-height:calc(100dvh - 2rem);height:calc(100dvh - 2rem);box-shadow:none;border-left:1px solid var(--tf-border, var(--uf-border, rgba(15, 23, 42, .08)));border-radius:var(--tf-radius-lg, var(--uf-radius-lg, 22px)) 0 0 var(--tf-radius-lg, var(--uf-radius-lg, 22px))}.sp-header[data-v-11c70b10]{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem;border-bottom:1px solid var(--tf-border, var(--uf-border, rgba(15, 23, 42, .08)));background:var(--tf-surface, var(--uf-surface, #fff))}.sp-title[data-v-11c70b10]{margin:0;font-size:1.12rem;font-weight:800;letter-spacing:-.02em;color:var(--tf-text, var(--uf-text, #0f172a));line-height:1.25}.sp-subtitle[data-v-11c70b10]{margin:.35rem 0 0;font-size:.86rem;line-height:1.45;color:var(--tf-text-secondary, var(--uf-text-secondary, #64748b));max-width:36ch}.sp-close[data-v-11c70b10]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:none;border-radius:var(--tf-radius-sm, var(--uf-radius-sm, 10px));background:#0f172a0d;color:var(--tf-text-secondary, var(--uf-text-secondary, #64748b));cursor:pointer;transition:background var(--tf-transition-fast),color var(--tf-transition-fast)}.sp-close[data-v-11c70b10]:hover{background:#0f172a17;color:var(--tf-text, var(--uf-text, #0f172a))}.sp-close-ico[data-v-11c70b10]{width:1.2rem;height:1.2rem}.sp-body[data-v-11c70b10]{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.1rem 1.25rem 1.25rem}.sp-footer[data-v-11c70b10]{flex-shrink:0;padding:.9rem 1.25rem calc(1.15rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--tf-border, var(--uf-border, rgba(15, 23, 42, .08)));background:var(--tf-surface, var(--uf-surface, #fff));box-shadow:0 -4px 20px #0f172a0a}.side-panel-enter-active[data-v-11c70b10],.side-panel-leave-active[data-v-11c70b10],.side-panel-dock-enter-active[data-v-11c70b10],.side-panel-dock-leave-active[data-v-11c70b10]{transition:opacity var(--tf-transition)}.side-panel-enter-active .sp-panel[data-v-11c70b10],.side-panel-leave-active .sp-panel[data-v-11c70b10]{transition:transform var(--tf-transition)}.side-panel-dock-enter-active .sp-panel--dock[data-v-11c70b10],.side-panel-dock-leave-active .sp-panel--dock[data-v-11c70b10]{transition:transform var(--tf-transition),opacity var(--tf-transition)}.side-panel-enter-from[data-v-11c70b10],.side-panel-leave-to[data-v-11c70b10]{opacity:0}.side-panel-enter-from .sp-panel[data-v-11c70b10],.side-panel-leave-to .sp-panel[data-v-11c70b10]{transform:translate(100%)}.side-panel-dock-enter-from[data-v-11c70b10],.side-panel-dock-leave-to[data-v-11c70b10]{opacity:0}.side-panel-dock-enter-from .sp-panel--dock[data-v-11c70b10],.side-panel-dock-leave-to .sp-panel--dock[data-v-11c70b10]{transform:translate(1.5rem)}@media (max-width: 899px){.sp-panel--dock[data-v-11c70b10]{max-height:100dvh;height:100dvh;border-radius:0}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;width:100%}body{font-family:var(--tf-font);line-height:1.58;color:var(--tf-text);background:var(--tf-canvas-mesh);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%;margin:0}#app,.tf-vue-root{min-height:100vh;min-height:100dvh;width:100%;max-width:100%;overflow-x:hidden}@media (max-width: 1023px){.tf-main{padding-left:0!important;padding-right:0!important}.tf-main-slot{width:100%!important;max-width:100%!important;margin:0!important;padding-left:max(12px,var(--tf-safe-left))!important;padding-right:max(12px,var(--tf-safe-right))!important;box-sizing:border-box!important}.tf-main-slot .panel,.tf-main-slot .card,.tf-main-slot .state-card,.tf-main-slot .client-panel,.tf-main-slot .notify-item,.tf-main-slot .goal-form,.tf-main-slot .nutrition-form,.tf-main-slot .search-form,.tf-main-slot .product-form,.tf-main-slot .diary-form{border:none!important;border-radius:0!important;box-shadow:none!important;margin-left:0!important;margin-right:0!important}.tf-main-slot .cw-head,.tf-main-slot .cw-tabs-scroll{border:none!important;border-radius:0!important;box-shadow:none!important}.tf-main-slot .cw,.tf-main-slot .notifications-page,.tf-main-slot .client-panel--collapsible{border-radius:0!important}}
