*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden;-webkit-text-size-adjust:100%}:root{--color-primary: #196d5f;--color-primary-hover: #125a4e;--color-primary-light: #e8f4f1;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-bg: #fbf8f5;--color-surface: #ffffff;--color-text: #1e293b;--color-text-secondary: #64748b;--color-border: #e2e0dc;--color-expired: #fef2f2;--color-expiring-soon: #fff7ed;--color-expiring-month: #fffbeb;--radius: 12px;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 6px rgba(0, 0, 0, .04), 0 10px 24px rgba(0, 0, 0, .08);--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--text-2xs: .65rem;--text-xs: .75rem;--text-sm: .8rem;--text-base-sm: .85rem;--text-base: .9rem;--text-base-lg: .95rem;--text-md: 1rem;--text-lg: 1.1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2rem;--text-5xl: 2.5rem;--color-text-muted: #666666;--color-text-dark: #444444;--color-on-dark: #ffffff;--color-surface-dark: #1a1a1a;--color-surface-muted: #f0f0f0;--color-border-light: #e0e0e0;--color-success: #16a34a;--color-success-bg: #dcfce7;--color-success-text: #166534;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-danger-bg: #fee2e2;--color-danger-text: #991b1b;--color-paid-bg: #d4edda;--color-paid-text: #155724;--color-expiry-orange: #f97316;--color-expiry-yellow: #eab308}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3{font-family:Plus Jakarta Sans,Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.3}#root{min-height:100vh;display:flex;flex-direction:column;width:100%;max-width:100vw}.navbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06);box-shadow:0 1px 2px #00000008;position:fixed;top:0;left:0;right:0;z-index:100}.app-main{position:fixed;inset:69px 0 0;display:flex;overflow:hidden}.app-sidebar{width:240px;flex-shrink:0;overflow-y:auto;border-right:1px solid rgba(0,0,0,.06);background:var(--color-surface);display:flex;flex-direction:column;padding:.5rem 0}.app-content{flex:1;min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;background:var(--color-surface)}.sidebar-section{padding:.25rem 0}.sidebar-section+.sidebar-section{border-top:1px solid var(--color-border)}.sidebar-section-modules{flex:1;overflow-y:auto}.sidebar-section-footer{margin-top:auto;border-top:1px solid var(--color-border)}.sidebar-divider{border:none;border-top:1px solid var(--color-border);margin:.25rem .75rem}.sidebar-section-header{display:flex;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.sidebar-module-header{display:flex;align-items:center;width:100%}.sidebar-module-link{display:flex;align-items:center;gap:.35rem;flex:1;min-width:0;padding:.4rem 0 .4rem .75rem;background:none;border:none;cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--color-text);text-align:left;transition:background .1s}.sidebar-module-link:hover{background:var(--color-bg)}.sidebar-module-active{color:var(--color-primary);background:var(--color-primary-light)}.sidebar-module-toggle{display:flex;align-items:center;gap:.25rem;padding:.4rem .75rem .4rem .35rem;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);transition:background .1s}.sidebar-module-toggle:hover{background:var(--color-bg)}.sidebar-module-icon{width:24px;height:24px;flex-shrink:0}img.sidebar-module-icon{border-radius:3px;object-fit:contain}.sidebar-module-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-module-count{font-size:var(--text-xs);color:var(--color-text-secondary);min-width:1.2em;text-align:right}.sidebar-instance{display:block;width:100%;padding:.3rem .75rem .3rem 2.5rem;background:none;border:none;border-left:3px solid transparent;cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s,color .1s}.sidebar-instance:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-instance-active{background:var(--color-primary-light);color:var(--color-primary);font-weight:500;border-left-color:var(--color-primary)}.sidebar-empty{display:block;padding:.25rem .75rem .25rem 2.5rem;font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic}.sidebar-portal-link{display:flex;align-items:center;gap:.35rem;width:100%;padding:.4rem .75rem;background:none;border:none;border-left:3px solid transparent;cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);text-align:left;transition:background .1s,color .1s}.sidebar-portal-link:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-portal-link.sidebar-instance-active{background:var(--color-primary-light);color:var(--color-primary);font-weight:500;border-left-color:var(--color-primary)}@media(min-width:641px){.back-to-portal{display:none}}.navbar-left{display:flex;flex-direction:column}.navbar-brand{font-weight:700;font-size:1.2rem;cursor:pointer;color:var(--color-primary);white-space:nowrap}.navbar-brand-logo{max-height:30px;max-width:180px;width:auto;height:auto;cursor:pointer;object-fit:contain}.navbar-user{color:var(--color-text-secondary);font-size:var(--text-xs)}.navbar-menu-user{padding:.55rem 1rem;font-size:var(--text-base-sm);color:var(--color-text-secondary);font-weight:500}.navbar-app{position:absolute;left:50%;transform:translate(-50%);cursor:pointer;display:flex;align-items:center}.navbar-app-logo{height:36px;width:auto;object-fit:contain}.navbar-app-emoji{font-size:1.8rem}.navbar-links{position:relative;display:flex;align-items:center}.navbar-menu-wrap{position:relative}.navbar-menu-toggle{background:none;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1.4rem;line-height:1;padding:.3rem .6rem;cursor:pointer;color:var(--color-text);transition:background .15s ease,border-color .15s ease}.navbar-menu-toggle:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.navbar-menu{position:absolute;top:100%;right:0;margin-top:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:50;min-width:180px;padding:.35rem 0}.navbar-menu-item{display:block;width:100%;padding:.55rem 1rem;background:none;border:none;text-align:left;font-size:var(--text-base);font-family:inherit;color:var(--color-text);cursor:pointer;transition:background .1s ease}.navbar-menu-item:hover{background:var(--color-primary-light)}.navbar-menu-item-legal{font-size:var(--text-sm);color:var(--color-text-muted)}.navbar-menu-item-logout{color:var(--color-danger)}.navbar-menu-item-logout:hover{background:var(--color-expired)}.navbar-menu-divider{height:1px;background:var(--color-border);margin:.3rem 0}.navbar-menu-version{text-align:center;font-size:.7rem;color:#767676;padding:.3rem 0 .1rem}.navbar-public{display:block;padding:0;border-bottom:1px solid var(--color-border-light)}.navbar-public-container{max-width:1120px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between}.navbar-submenu-wrap{position:relative}.navbar-submenu{position:absolute;right:calc(100% - .4rem);top:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:200px;padding:.35rem 0;z-index:52}.navbar-submenu-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.55rem 1rem;background:none;border:none;text-align:left;font-size:var(--text-base);font-family:inherit;color:var(--color-text);cursor:pointer;transition:background .1s ease}.navbar-submenu-item:hover{background:var(--color-primary-light)}.navbar-submenu-icon{height:20px;width:20px;object-fit:contain;vertical-align:middle;margin-right:.25rem}.navbar-submenu-check{color:var(--color-primary);font-weight:600}.navbar-unread-dot{display:inline-block;width:8px;height:8px;background:var(--color-danger);border-radius:50%;margin-left:.4rem;vertical-align:middle}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--radius);font-size:var(--text-base-sm);font-weight:500;border:1px solid transparent;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn:focus-visible,.form-input:focus-visible,a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover{background:var(--color-primary-light)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-ghost:hover{background:var(--color-primary-light)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-hover)}.btn-danger-ghost{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger)}.btn-danger-ghost:hover{background:var(--color-danger);color:#fff}.btn-delete-icon{background:transparent;border:none;color:#9ca3af;padding:.25rem;border-radius:var(--radius);cursor:pointer;transition:color .15s,background .15s;display:inline-flex;align-items:center}.btn-delete-icon:hover{color:var(--color-danger);background:#fef2f2}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btnSpin .6s linear infinite;vertical-align:middle;margin-right:.4rem}@keyframes btnSpin{to{transform:rotate(360deg)}}.btn-sm{padding:.25rem .5rem;font-size:var(--text-sm)}.btn-full{width:100%}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;padding:0;font-family:inherit}.btn-link:hover{text-decoration:underline}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:var(--text-base-sm);font-weight:500;margin-bottom:.25rem;color:var(--color-text)}.form-label-required:after{content:" *";color:var(--color-danger);font-weight:400}.form-input{width:100%;min-width:0;max-width:100%;min-height:2.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-base);font-family:inherit;background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease}input[type=date].form-input{display:block;-webkit-appearance:none;appearance:none}.form-input-readonly{background:var(--color-bg);color:var(--color-text-secondary);cursor:default;display:flex;align-items:center}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0e74901a}.form-input[readonly]{background:var(--color-bg);color:var(--color-text-secondary)}.form-input-deactivated{background:#fff7ed;color:#9a3412;border-color:var(--color-expiry-orange);font-style:italic}.form-input-error,.form-input-invalid{border-color:var(--color-danger)}.form-input-error:focus,.form-input-invalid:focus{box-shadow:0 0 0 3px #dc262626}.field-error{color:var(--color-danger);font-size:var(--text-sm);margin-top:.25rem}.form-textarea{resize:vertical}.form-row{display:flex;gap:var(--space-lg);margin-bottom:0}.form-group-half,.form-group-third{flex:1;min-width:0}.form-group-two-thirds{flex:2;min-width:0}.form-group-one-third{flex:1;min-width:0}.form-row-food{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:0}.form-group-food{flex:1}.form-row-location{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:0}.form-group-location{flex:1}.form-group-quantity{width:80px;flex-shrink:0}.food-icon-preview{width:56px;height:56px;border:1px solid var(--color-border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:var(--text-3xl);background:var(--color-surface);flex-shrink:0;margin-bottom:1rem;position:relative}.food-icon-preview .photo-thumbnail-addable{position:static}.btn-ai-analyze{position:absolute;bottom:-6px;right:-6px;width:28px;height:28px;border-radius:50%;border:2px solid var(--color-surface);background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;z-index:2;transition:background .15s,opacity .15s}.btn-ai-analyze:hover{background:var(--color-primary-dark, #6d28d9)}.btn-ai-analyze.btn-ai-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.spinner-small{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin-small .6s linear infinite}@keyframes spin-small{to{transform:rotate(360deg)}}.form-error{color:var(--color-danger);font-size:var(--text-base);margin-top:.5rem;padding:.5rem .75rem;background:var(--color-expired);border:1px solid var(--color-danger);border-radius:var(--radius)}.form-actions{display:flex;gap:var(--space-md);margin-top:1.5rem}.confirm-bar{display:flex;align-items:center;gap:var(--space-md);margin-top:.75rem;padding:.75rem;background:var(--color-expired);border:1px solid var(--color-danger);border-radius:var(--radius);font-size:var(--text-base)}.confirm-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;animation:overlay-fade-in .15s ease}.confirm-dialog{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:400px;width:90%;animation:dialog-scale-in .15s ease}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:600px){.confirm-overlay:has(input,textarea,select){align-items:flex-start;padding-top:4.5rem;overflow-y:auto}.confirm-overlay:has(input,textarea,select) .confirm-dialog{margin-bottom:3rem}}.confirm-dialog p{margin-bottom:1rem;font-size:var(--text-base-lg)}.confirm-dialog-actions,.confirm-actions{display:flex;gap:var(--space-md)}.password-dialog{max-width:420px}.password-dialog h3{margin-bottom:1rem}.password-dialog .form-group{margin-bottom:.75rem}.error-message{background:var(--color-expired);color:var(--color-danger);padding:.75rem;border-radius:var(--radius);margin-bottom:1rem;font-size:var(--text-base-sm)}.form-error{color:var(--color-danger);font-size:var(--text-base-sm);margin:.25rem 0 .5rem}.form-success{color:var(--color-success);font-size:var(--text-base-sm);margin:.25rem 0 .5rem}.invite-login-hint{background:#e8f4fd;color:#1a5276;padding:.75rem;border-radius:var(--radius);margin-bottom:1rem;font-size:var(--text-base-sm);border:1px solid #aed6f1}.autocomplete-wrapper{position:relative;margin-bottom:1rem}.autocomplete-input-wrap{position:relative}.autocomplete-prefix{position:absolute;left:.5rem;top:50%;transform:translateY(-50%);font-size:var(--text-md);line-height:1;pointer-events:none;z-index:1}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius) var(--radius);max-height:200px;overflow-y:auto;z-index:10;list-style:none;box-shadow:var(--shadow-lg)}.autocomplete-dropdown li{padding:.5rem .75rem;cursor:pointer}.autocomplete-dropdown li:hover,.autocomplete-dropdown li.active{background:var(--color-primary-light)}.autocomplete-item-icon{display:inline-block;width:1.2em;text-align:center;margin-right:.25rem}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:var(--color-surface);padding:2.5rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:400px;border:1px solid var(--color-border)}.login-title{font-size:var(--text-3xl);text-align:center;color:var(--color-primary);margin-bottom:.25rem}.login-logo{display:block;max-width:75%;height:auto;margin:0 auto .5rem}.login-subtitle{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base-sm);margin-bottom:2rem;font-style:italic}.login-toggle{text-align:center;margin-top:1.5rem;color:var(--color-text-secondary);font-size:var(--text-base-sm)}.login-help-link{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--color-primary);color:var(--color-on-dark);font-weight:700;font-size:var(--text-md);text-decoration:none;margin:1.5rem auto 0;transition:opacity .15s}.login-help-link:hover{opacity:.85}.login-separator{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0 1rem;color:var(--color-text-secondary);font-size:var(--text-base-sm)}.login-separator:before,.login-separator:after{content:"";flex:1;height:1px;background:var(--color-border)}.child-login-section{text-align:center}.child-login-step-label{font-size:var(--text-base-sm);color:var(--color-text-secondary);margin-bottom:.5rem}.child-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.75rem 0}.child-name-card{padding:.75rem;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;font-size:var(--text-md);font-weight:600;transition:border-color .15s,background .15s;text-align:center}.child-name-card:hover{border-color:var(--color-primary);background:var(--color-bg-hover)}.pin-input-group{display:flex;gap:.5rem;justify-content:center;margin:.75rem 0}.pin-digit{width:3rem;height:3.5rem;text-align:center;font-size:var(--text-2xl);font-weight:700;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);letter-spacing:0}.pin-digit:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #3b82f626}.child-login-back{margin-top:.75rem}.billing-children-card{margin-top:1.5rem}.billing-family-code-display{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.75rem 0;padding:.75rem;background:var(--color-bg-secondary);border-radius:var(--radius)}.billing-family-code-value{font-family:SF Mono,Menlo,monospace;font-size:var(--text-2xl);font-weight:700;letter-spacing:.15em;color:var(--color-text)}.billing-family-code-actions{display:flex;gap:.5rem;flex-wrap:wrap}.billing-child-list{list-style:none;padding:0;margin:.75rem 0}.billing-child-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.billing-child-item:last-child{border-bottom:none}.billing-child-info{display:flex;flex-direction:column;gap:.25rem}.billing-child-name{font-weight:600}.billing-child-meta{font-size:var(--text-xs);color:var(--color-text-secondary)}.billing-child-actions{display:flex;gap:.25rem;flex-wrap:wrap}.billing-add-child-form{margin-top:1rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-secondary)}.billing-add-child-form h3{margin-top:0;margin-bottom:.75rem;font-size:var(--text-md)}.billing-instance-checkboxes{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0}.billing-instance-checkbox{display:flex;align-items:center;gap:.5rem}.billing-instance-checkbox label{flex:1;font-size:var(--text-base-sm)}.billing-instance-role-select{padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);background:var(--color-surface)}.billing-slots-counter{margin-top:.75rem;padding:.5rem .75rem;background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--text-base-sm);color:var(--color-text-secondary);text-align:center}.invite-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.invite-card{background:var(--color-surface);padding:2.5rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:480px;border:1px solid var(--color-border);text-align:center}.invite-card h1{font-size:var(--text-2xl);color:var(--color-primary);margin-bottom:1.5rem}.invite-details{text-align:left;margin-bottom:1.5rem}.invite-detail-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.invite-detail-label{color:var(--color-text-secondary);font-weight:500}.invite-actions{display:flex;gap:var(--space-md);justify-content:center;margin-top:1.5rem}.invite-error{color:var(--color-danger);margin-bottom:1.5rem}.invite-dialog{min-width:360px}.invite-dialog-subtitle{color:var(--color-text-secondary);font-size:var(--text-base-sm);margin-bottom:1rem}.invite-dialog-actions{flex-wrap:wrap}.invite-link-row{display:flex;gap:var(--space-sm);align-items:center}.invite-link-row .form-input{flex:1;font-size:var(--text-sm)}.invite-divider{display:flex;align-items:center;gap:var(--space-md);margin:.75rem 0;color:var(--color-text-secondary);font-size:var(--text-base-sm)}.invite-divider:before,.invite-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.btn-full-width{width:100%}.invite-family-section{margin-bottom:.25rem}.invite-family-list{display:flex;flex-direction:column;gap:var(--space-sm)}.invite-family-member{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:6px;gap:var(--space-md)}.invite-family-member--disabled{opacity:.6}.invite-family-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.invite-family-name{font-weight:500;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.invite-family-email{font-size:var(--text-sm);color:var(--color-text-secondary)}.invite-family-badge{font-size:var(--text-2xs);background:var(--color-primary-light);color:var(--color-primary);padding:.1rem .35rem;border-radius:4px;font-weight:600}.invite-family-badge--active{background:var(--color-success-light, #d1fae5);color:var(--color-success, #059669)}.portal-no-access{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:2rem;text-align:center;color:#555}.portal-no-access h2{margin-bottom:.5rem;color:#333}.portal-onboarding{max-width:800px;margin:0 auto;padding:var(--space-6) var(--space-4)}.portal-onboarding-header{text-align:center;margin-bottom:var(--space-8)}.portal-onboarding-header h1{font-size:var(--text-2xl);font-weight:800;letter-spacing:-.02em;margin:0 0 var(--space-2);color:var(--color-text)}.portal-onboarding-header p{font-size:var(--text-lg);font-style:italic;color:var(--color-text-secondary);margin:0}.portal-onboarding-steps-title{font-size:var(--text-lg);font-weight:600;text-align:center;margin-bottom:var(--space-4);color:var(--color-text)}.portal-onboarding-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-8)}.portal-onboarding-step{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);text-align:center}.portal-onboarding-step-number{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:700;font-size:var(--text-lg);margin-bottom:var(--space-2)}.portal-onboarding-step h3{font-size:var(--text-base);font-weight:600;margin:0 0 var(--space-1);color:var(--color-text)}.portal-onboarding-step p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.4}.portal-onboarding-choose{font-size:var(--text-lg);font-weight:600;text-align:center;margin-bottom:var(--space-4);color:var(--color-text)}.portal-onboarding-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.portal-onboarding-module-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5) var(--space-3);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;font-family:inherit;font-size:inherit;color:inherit}.portal-onboarding-module-card:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}@media(hover:hover){.portal-onboarding-module-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}}.portal-onboarding-module-card img{width:48px;height:48px;object-fit:contain}.portal-onboarding-module-card .portal-onboarding-module-emoji{font-size:2.5rem;line-height:1}.portal-onboarding-module-card h3{font-size:var(--text-base);font-weight:600;margin:0}.portal-onboarding-module-card p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;text-align:center;line-height:1.3}@media(max-width:640px){.portal-onboarding{padding:var(--space-4) var(--space-3)}.portal-onboarding-header h1{font-size:var(--text-xl)}.portal-onboarding-steps{grid-template-columns:1fr;gap:var(--space-3)}.portal-onboarding-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.portal-onboarding-module-card img{width:40px;height:40px}.portal-onboarding-module-card .portal-onboarding-module-emoji{font-size:2rem}}.portal-layout{flex:1 0 auto}.portal-content{padding:1.5rem;max-width:1000px;flex:1}.portal-theme-all,.portal-theme-favorites,.portal-theme-freezeme,.portal-theme-workshop,.portal-theme-meditrack,.portal-theme-supplies,.portal-theme-groceries,.portal-theme-rlstorage,.portal-theme-reminder{background-color:#fbf8f5}.portal-manage-modules-bar{padding:1rem 0;text-align:center}.portal-all-modules{display:flex;flex-direction:column;gap:2rem}.portal-module-section{display:flex;flex-direction:column;gap:var(--space-lg)}.portal-section-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.4rem;border-bottom:1px solid var(--color-border)}.portal-section-header-left{display:flex;align-items:center;gap:var(--space-sm)}.portal-section-icon{width:32px;height:32px;object-fit:contain;font-size:1.6rem;line-height:32px}img.portal-section-icon{display:block}.portal-section-name{font-size:var(--text-lg);font-weight:700;letter-spacing:-.005em;color:var(--color-text)}.portal-section-description{font-size:var(--text-sm);color:var(--color-text-secondary);font-style:italic}.portal-section-description:after{content:" · ";font-style:normal}.portal-section-count{font-size:var(--text-sm);color:var(--color-text-muted)}.portal-sidebar-icon{font-size:var(--text-lg);flex-shrink:0;width:24px;text-align:center;line-height:1}img.portal-sidebar-icon{width:24px;height:24px;object-fit:contain}.portal-sidebar-count{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface-muted);padding:.1rem .45rem;border-radius:999px;min-width:20px;text-align:center}.portal-content-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.portal-content-header-left{display:flex;align-items:center;gap:var(--space-sm)}.portal-content-emoji{font-size:var(--text-2xl)}.portal-content-logo{height:36px;object-fit:contain}.portal-content-description{color:var(--color-text-secondary);font-size:var(--text-base-sm)}.portal-content-count{font-size:var(--text-sm);color:var(--color-text-muted)}.portal-mobile-header{display:none}.portal-mobile-nav-toggle{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;padding:0;cursor:pointer;color:var(--color-text-dark);font-size:var(--text-md);font-weight:600}.portal-mobile-nav-arrow{font-size:var(--text-base-sm);color:var(--color-text-secondary)}.portal-mobile-nav-toggle:hover .portal-mobile-nav-arrow{color:var(--color-primary)}.portal-mobile-nav-overlay{position:fixed;inset:0;background:#0000004d;z-index:199}.portal-mobile-nav-panel{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80vw;z-index:200;background:var(--color-surface);box-shadow:2px 0 12px #00000026;display:flex;flex-direction:column;animation:portalNavSlideIn .25s ease-out}@keyframes portalNavSlideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.portal-mobile-nav-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;border-bottom:1px solid var(--color-border)}.portal-mobile-nav-header h3{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--color-text-dark)}.portal-mobile-nav-close{background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:var(--color-text-secondary);padding:.25rem;line-height:1}.portal-mobile-nav-list{display:flex;flex-direction:column;padding:.5rem 0;overflow-y:auto;flex:1}.portal-mobile-nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:.7rem 1.25rem;color:var(--color-text);font-size:var(--text-base);cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .15s ease}.portal-mobile-nav-item:hover{background:var(--color-primary-light)}.portal-mobile-nav-item-active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600;border-left:3px solid var(--color-primary);padding-left:calc(1.25rem - 3px)}.portal-mobile-nav-divider{height:1px;background:var(--color-border);margin:.4rem 1rem}.portal-mobile-nav-manage{color:var(--color-text-secondary);font-size:var(--text-base-sm)}.portal-empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary);font-size:var(--text-base-lg)}.portal-module-manager{max-width:380px;width:100%}.portal-module-manager h3{margin:0 0 1rem;font-size:var(--text-lg)}.portal-module-manager-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:1rem}.portal-module-manager-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:var(--radius);background:var(--color-bg)}.portal-module-manager-info{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-base)}.portal-module-manager-icon{width:22px;height:22px;object-fit:contain;font-size:1.2rem;line-height:22px;flex-shrink:0}img.portal-module-manager-icon{display:block}.portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-xl)}.portal-card{background:var(--color-surface);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;transition:box-shadow .2s ease,transform .2s ease;text-align:center;border:1px solid var(--color-border)}@media(hover:hover){.portal-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--color-primary)}}.portal-card:active{transform:scale(.97)}.portal-card-icon{font-size:3rem;display:block;margin-bottom:.75rem}.portal-card-logo{position:absolute;top:.5rem;left:.75rem;height:36px;width:auto;object-fit:contain}.portal-card-fav{position:absolute;top:.5rem;right:.5rem;background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:#d4a017;line-height:1;padding:.15rem;opacity:.5;transition:opacity .15s}.portal-card-fav:hover{opacity:1}.portal-card h2{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.25rem}.portal-card p{color:var(--color-text-secondary);font-size:var(--text-base-sm)}.portal-instance-card{position:relative;padding-top:3rem;display:flex;flex-direction:column}.portal-card-actions{display:flex;gap:var(--space-xs);justify-content:center;margin-top:auto;padding-top:.5rem}.portal-rename-form{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap;justify-content:center;margin-top:.5rem}.portal-rename-form .form-input{max-width:140px;padding:.3rem .5rem;font-size:var(--text-base-sm)}.portal-card-add{border:2px dashed var(--color-border);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;font-family:inherit;font-size:inherit;color:inherit;text-align:center;cursor:pointer}.portal-card-add:hover{border-color:var(--color-primary);background:var(--color-surface)}.portal-card-add-icon{font-size:var(--text-5xl);color:var(--color-text-secondary);line-height:1}.portal-card-add p{margin-top:.5rem}.portal-card-locked{text-align:center;cursor:pointer;border:2px dashed var(--color-border);opacity:.85;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}.portal-card-locked:hover{border-color:var(--color-primary);opacity:1}.portal-locked-icon{color:var(--color-text-secondary)}.portal-card-locked h2{color:var(--color-text-secondary);font-size:1rem;margin:0}.portal-card-locked p{font-size:var(--text-base-sm);color:var(--color-text-secondary);margin:0}.portal-locked-badge{color:var(--color-text-secondary);margin-left:.25rem}.settings-test-hint{color:var(--color-text-secondary);font-size:var(--text-base-sm);cursor:help}.portal-admin-tombstone-section{margin-top:2rem}.portal-card-colored{border:1px solid rgba(0,0,0,.12);box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff40}.portal-card-shared{border-left:3px solid var(--color-primary);opacity:.92}.portal-card-badges{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.25rem}.portal-mode-badge{display:inline-block;font-size:var(--text-2xs);padding:.1rem .4rem;border-radius:4px;font-weight:600;letter-spacing:.03em}.portal-mode-badge-free{background:var(--color-surface-muted);color:var(--color-text-muted)}.portal-mode-badge-test{background:#fef3cd;color:#856404}.portal-mode-badge-paid{background:var(--color-paid-bg);color:var(--color-paid-text)}.portal-shared-badge{display:inline-block;font-size:var(--text-2xs);background:var(--color-primary-light);color:var(--color-primary);padding:.1rem .4rem;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.portal-item-count{display:block;font-size:.7rem;color:var(--color-text-secondary);margin-bottom:.15rem}.portal-shared-owner{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:-.25rem}.instance-dialog{min-width:320px}.instance-dialog h3{margin-bottom:1rem;font-size:var(--text-lg)}.instance-dialog .form-group{margin-bottom:1rem}.portal-admin-page{padding:1.5rem;max-width:900px;margin:0 auto;width:100%}.portal-admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.portal-admin-header h1{font-size:var(--text-2xl)}.portal-admin-toolbar{display:flex;gap:var(--space-md);align-items:center;margin-bottom:1rem}.portal-admin-toolbar .search-input{width:250px;min-width:0}.portal-admin-user-count{color:var(--color-text-secondary);font-size:var(--text-base-sm);white-space:nowrap}.portal-admin-create-fields{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.portal-admin-create-fields .form-input{width:220px;min-width:0}.portal-admin-list{display:flex;flex-direction:column;gap:var(--space-md)}.portal-admin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow)}.portal-admin-card-name{font-weight:600;font-size:var(--text-md)}.portal-admin-card-email{color:var(--color-text-secondary);font-size:var(--text-base-sm)}.portal-admin-apps-label{font-size:var(--text-base-sm);color:var(--color-text-secondary)}.portal-admin-app-checkbox{display:flex;align-items:center;gap:.3rem;font-size:var(--text-base);cursor:pointer}.portal-admin-app-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary);cursor:pointer}.module-page{padding:1.5rem;max-width:1400px;margin:0 auto;width:100%;overflow-x:hidden}.module-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:1.5rem;min-width:0}.module-header h1{font-size:var(--text-xl);font-weight:700;color:var(--color-text);letter-spacing:-.01em;margin:0;padding-bottom:.4rem;border-bottom:2px solid var(--color-border);overflow-wrap:break-word;word-break:break-word;min-width:0}.instance-title-block{cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;flex-shrink:1;overflow:hidden;-webkit-user-select:none;user-select:none}.instance-title-back{font-size:11px;font-weight:500;color:var(--color-text-secondary);line-height:1.2;opacity:.6;transition:opacity .15s,color .15s;white-space:nowrap}.instance-title-block:hover .instance-title-back,.instance-title-block:focus-visible .instance-title-back{opacity:1;color:var(--color-primary)}.instance-title-block:focus{outline:none}.instance-title-block:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:4px}.instance-title-name{font-size:var(--text-lg);font-weight:700;color:var(--color-text);letter-spacing:-.01em;margin:0;padding-bottom:3px;border-bottom:2px solid var(--color-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:42vw;line-height:1.25}.module-header-actions{display:flex;gap:var(--space-sm);align-items:center;flex-shrink:0}.module-toolbar{display:flex;gap:var(--space-md);margin-bottom:1.5rem;align-items:center;flex-wrap:wrap}.module-form-page{padding:1.5rem;max-width:600px;margin:0 auto;width:100%;overflow-x:hidden}.module-admin-page{padding:1.5rem;max-width:900px;margin:0 auto;width:100%;overflow-x:hidden}.search-input{max-width:300px}.shortcut-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.3em;height:1.3em;padding:0 .2em;margin-left:.4em;font-family:system-ui,-apple-system,sans-serif;font-size:.7em;font-weight:600;line-height:1;color:var(--color-text-muted);background:#0000000f;border:1px solid rgba(0,0,0,.15);border-radius:3px;vertical-align:middle}.btn-primary .shortcut-badge{color:#fffc;background:#ffffff2e;border-color:#ffffff4d}.search-input-wrapper{position:relative;max-width:300px;flex:1}.search-input-wrapper .search-input{max-width:100%;width:100%;padding-right:2rem}.search-shortcut-badge{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);margin-left:0;pointer-events:none;font-size:var(--text-xs)}.search-input-wrapper:focus-within .search-shortcut-badge{display:none}.search-clear-btn{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-muted, #6b7280);font-size:.85rem;padding:2px 6px;border-radius:50%;line-height:1;transition:color .15s,background .15s;z-index:1}.search-clear-btn:hover{color:var(--text-dark, #1f2937);background:var(--bg-light, #f3f4f6)}.search-result-count{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.empty-state{text-align:center;color:var(--color-text-secondary);padding:3rem;background:var(--color-surface);border-radius:var(--radius);border:1px dashed var(--color-border);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.item-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-md)}.skeleton-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.skeleton-line{height:.75rem;border-radius:4px;background:linear-gradient(90deg,var(--color-border) 25%,var(--color-surface) 50%,var(--color-border) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton-line-title{width:60%;height:1rem}.skeleton-line-detail{width:80%}.skeleton-line-meta{width:40%}.skeleton-card-workshop,.skeleton-card-groceries{padding:.5rem .75rem}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.item-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;padding-left:calc(.75rem + 4px);box-shadow:var(--shadow);transition:box-shadow .2s ease,transform .2s ease;display:flex;flex-direction:column;position:relative;overflow:hidden}.item-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--color-primary);border-radius:var(--radius) 0 0 var(--radius)}.item-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.item-card:active{transform:scale(.98)}.item-card.expired:before{background:var(--color-danger)}.item-card.expiring-soon:before{background:var(--color-expiry-orange)}.item-card.expiring-month:before{background:var(--color-expiry-yellow)}.item-card-main{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:0 var(--space-md);margin-bottom:.5rem}.item-card-content h3{font-size:var(--text-lg);margin-bottom:.125rem}.item-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;border-radius:50%;background:var(--color-primary-light);margin-right:.5rem;flex-shrink:0}.item-code{display:inline-block;background:var(--color-bg);padding:.1rem .4rem;border-radius:4px;font-size:var(--text-sm);font-family:monospace;color:var(--color-text-secondary)}.item-card-details{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs)}.item-location,.item-quantity{font-size:var(--text-sm);color:var(--color-text-secondary)}.item-quantity-editable{cursor:pointer;border-bottom:1px dashed var(--color-text-secondary);padding-bottom:1px;transition:border-color .15s}.item-quantity-editable:hover{border-color:var(--color-primary);color:var(--color-primary)}.inline-quantity-input{width:5rem;font-size:var(--text-sm);font-family:inherit;padding:.15rem .3rem;border:1px solid var(--color-primary);border-radius:3px;outline:none;background:var(--color-surface);color:var(--color-text)}.item-card-meta{display:grid;grid-template-columns:1fr auto;align-items:baseline;font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:.25rem}.expiry-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem;vertical-align:middle;background:var(--color-success)}.expiry-dot.expired{background:var(--color-danger)}.expiry-dot.expiring-soon{background:var(--color-expiry-orange)}.expiry-dot.expiring-month{background:var(--color-expiry-yellow)}.expiry-dot.mt-expired{background:var(--color-danger)}.expiry-dot.mt-expiring-soon{background:var(--color-expiry-orange)}.expiry-dot.mt-expiring-quarter{background:var(--color-expiry-yellow)}.item-comment{font-size:var(--text-base-sm);color:var(--color-text-secondary);font-style:italic;margin-bottom:.5rem}.item-card-actions{display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:auto;padding-top:var(--space-sm)}.form-page-title{font-size:var(--text-md);font-weight:600;color:var(--color-primary);margin-bottom:1.2rem;padding-bottom:.6rem;border-bottom:2px solid var(--color-primary-light);display:flex;align-items:center;gap:.45rem;overflow-wrap:break-word;word-break:break-word}.form-page-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0}.voice-input-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.voice-input-hint{font-size:.85rem;color:var(--color-text-secondary)}.voice-input-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:color .2s,border-color .2s;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.voice-input-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.voice-input-btn.recording{color:#dc2626;border-color:#dc2626;animation:voice-pulse 1.5s ease-in-out infinite}.voice-input-btn:disabled{opacity:.5;cursor:default}.voice-spinner{animation:spin 1s linear infinite}@keyframes voice-pulse{0%,to{box-shadow:0 0 #dc262666}50%{box-shadow:0 0 0 8px #dc262600}}.voice-input-center{flex:1;min-width:0}.voice-save-next-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--color-primary);background:var(--color-primary);color:#fff;cursor:pointer;flex-shrink:0;transition:opacity .2s;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.voice-save-next-btn:hover{opacity:.85}.voice-save-next-btn:disabled{opacity:.35;cursor:default}.voice-save-next-badge{position:absolute;top:-2px;right:-2px;width:16px;height:16px;border-radius:50%;background:var(--color-primary-hover);color:#fff;font-size:11px;font-weight:700;line-height:16px;text-align:center;border:1.5px solid #fff;pointer-events:none}.voice-input-status{font-size:.85rem;color:var(--color-text-secondary)}.voice-input-status-error{color:var(--color-danger)}.form-floating-save-btn,.form-floating-cancel-btn{display:none}.admin-page h1{font-size:var(--text-xl);margin-bottom:1.5rem}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.admin-header h1{margin-bottom:0;font-size:var(--text-xl);font-weight:700;color:var(--color-text);letter-spacing:-.01em;padding-bottom:.4rem;border-bottom:2px solid var(--color-border);display:flex;align-items:center;gap:.5rem}.admin-title-icon{height:1.5em;width:auto}.admin-tabs{display:flex;gap:var(--space-sm);margin-bottom:1.5rem;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs .btn{white-space:nowrap;flex-shrink:0}.admin-search-input{margin-left:auto;max-width:200px;font-size:var(--text-base);padding:.4rem .75rem}.admin-search-row{margin-bottom:1rem}.admin-search-row .admin-search-input{max-width:300px}.admin-add-form{display:flex;gap:var(--space-md);align-items:center;margin-bottom:2rem}.admin-add-form .form-input{flex:1}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}.admin-column h3{margin-bottom:.75rem;font-size:var(--text-md)}.admin-list{list-style:none}.admin-list-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.5rem}.admin-list-item.inactive{opacity:.6}.admin-item-name{flex:1;margin:0 .5rem}.admin-item-icon{font-size:var(--text-lg);flex-shrink:0}.btn-star{background:none;border:none;cursor:pointer;font-size:var(--text-lg);padding:0;color:var(--color-border);transition:color .15s ease;line-height:1}.btn-star:hover,.btn-star.active{color:var(--color-expiry-yellow)}.admin-delete-btn{background:none;border:none;cursor:pointer;color:var(--color-danger);padding:.25rem;border-radius:var(--radius);transition:background .15s ease;flex-shrink:0}.admin-delete-btn:hover{background:var(--color-danger-bg, rgba(220, 38, 38, .1))}.admin-item-name-secondary{font-size:.8rem;color:var(--color-text-secondary);margin-left:.25rem}.admin-add-form-bilingual{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:2rem}.admin-add-form-bilingual .form-input{flex:1;min-width:120px}.category-edit-dialog{max-width:480px;width:100%}.category-edit-dialog .form-group{margin-bottom:.75rem}.category-edit-dialog .lang-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem}.category-edit-dialog .lang-fields-toggle{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.85rem;padding:.25rem 0;margin-top:.5rem}.category-edit-dialog .lang-fields-toggle:hover{text-decoration:underline}.category-edit-dialog .lang-label{font-size:.8rem;color:var(--color-text-secondary);margin-bottom:.15rem}.photo-thumbnail-wrap{position:relative;display:inline-block;vertical-align:middle;cursor:pointer}.photo-thumbnail{display:inline-block;border-radius:4px;object-fit:cover;vertical-align:middle}.photo-zoom-backdrop{position:fixed;inset:0;z-index:49}.photo-zoom-popup{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:4px;pointer-events:auto;position:relative}.photo-zoom-popup img{display:block;width:180px;height:180px;object-fit:cover;border-radius:6px}.photo-zoom-change-btn{position:absolute;bottom:8px;right:8px;width:32px;height:32px;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s}.photo-zoom-change-btn:hover{background:#000000bf}.food-photo-preview.photo-thumbnail-wrap .photo-thumbnail{border-radius:6px}.food-photo-preview.photo-thumbnail-wrap .photo-zoom-popup{display:none}.photo-thumbnail-addable{position:relative;display:inline-block;cursor:pointer;transition:opacity .15s}.photo-thumbnail-addable:hover{opacity:.7}.photo-add-badge{position:absolute;bottom:-4px;right:-4px;font-size:14px;font-weight:700;line-height:1;pointer-events:none;background:var(--color-primary);color:#fff;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0003}.photo-uploading{opacity:.5;pointer-events:none}.btn-photo{background:none;border:1px dashed var(--color-border);border-radius:6px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-base);transition:border-color .15s ease,background .15s ease;flex-shrink:0;padding:0}.btn-photo:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.btn-photo:disabled{opacity:.5;cursor:not-allowed}.btn-photo-delete{font-size:var(--text-xs);padding:.15rem .3rem}.admin-list-item.user-item,.ws-cat-header.user-item,.ws-sub-item.user-item{border-left:3px solid var(--color-primary)}.user-item-badge{display:inline-block;font-size:var(--text-2xs);background:var(--color-primary-light);color:var(--color-primary);padding:.1rem .35rem;border-radius:3px;margin-left:.4rem;vertical-align:middle;font-weight:500;line-height:1.3}.admin-error{color:var(--color-danger);font-size:var(--text-base-sm);margin-top:-.75rem;margin-bottom:1rem}.admin-limit-hint{font-size:var(--text-base-sm);color:var(--color-text-muted);margin-top:-.5rem;margin-bottom:.75rem}.profile-page{padding:1.5rem;max-width:600px;margin:0 auto;width:100%}.profile-page h1{margin-bottom:1.5rem}.profile-welcome-banner{display:flex;align-items:center;gap:var(--space-sm);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;font-size:var(--text-base)}.profile-form{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow)}.profile-readonly{background:var(--color-bg)!important;color:var(--color-text-secondary)!important;cursor:not-allowed}.success-message{background:#ecfdf5;color:#065f46;padding:.75rem;border-radius:var(--radius);margin-bottom:1rem;font-size:var(--text-base-sm)}.profile-apps-list{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-app-checkbox{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-base);cursor:default}.profile-app-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary)}.profile-app-name{font-weight:600}.profile-app-desc{color:var(--color-text-secondary);font-size:var(--text-sm)}.profile-app-disabled{opacity:.6}.profile-instance-row{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-base)}.profile-app-empty{color:var(--color-text-secondary);font-size:var(--text-base);padding:.5rem 0}.profile-delete-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.delete-warning{color:var(--color-danger);font-size:var(--text-base);line-height:1.5;margin-bottom:1rem}.delete-blocked-list{margin:.5rem 0 1rem 1.2rem;font-size:var(--text-base);color:var(--color-text)}.delete-blocked-list li{margin-bottom:.25rem}.portal-admin-instance-count{color:var(--color-text-secondary);font-size:var(--text-sm)}.portal-admin-card-main{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.portal-admin-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;margin-right:.5rem;font-size:var(--text-xs);color:var(--color-text-secondary)}.portal-admin-toggle:hover{color:var(--color-primary)}.portal-admin-details{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.portal-admin-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1.5rem}.portal-admin-detail-row{display:flex;gap:var(--space-sm);font-size:var(--text-base-sm)}.portal-admin-detail-label{color:var(--color-text-secondary);white-space:nowrap}.portal-admin-detail-value{color:var(--color-text)}.portal-admin-card-inactive{opacity:.6;border-left:3px solid var(--color-danger)}.portal-admin-badge-inactive{display:inline-block;font-size:var(--text-2xs);background:var(--color-expired);color:var(--color-danger);padding:.1rem .35rem;border-radius:3px;margin-left:.5rem;font-weight:500;vertical-align:middle}.portal-admin-badge-self{display:inline-block;font-size:var(--text-2xs);background:var(--color-primary-light);color:var(--color-primary);padding:.1rem .35rem;border-radius:3px;margin-left:.5rem;font-weight:500;vertical-align:middle}.portal-admin-badge-plan{display:inline-block;font-size:var(--text-2xs);padding:.1rem .35rem;border-radius:3px;margin-left:.5rem;font-weight:600;vertical-align:middle}.portal-admin-badge-plan-standard{background:#d4edda;color:#155724}.portal-admin-badge-plan-familie{background:#cce5ff;color:#004085}.portal-admin-badge-plan-paid{background:#d4edda;color:#155724}.portal-admin-badge-plan-premium_standard,.portal-admin-badge-plan-premium{background:#d1fae5;color:#065f46}.portal-admin-badge-plan-premium_family{background:#ccfbf1;color:#134e4a}.portal-admin-card-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.portal-admin-confirm-bar{display:flex;align-items:center;gap:var(--space-md);margin-top:.75rem;padding:.75rem;background:var(--color-expired);border:1px solid var(--color-danger);border-radius:var(--radius);font-size:var(--text-base)}.portal-admin-confirm-detail{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:.25rem}.portal-admin-instances{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.portal-admin-instances-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.03em}.portal-admin-instances-empty{font-size:var(--text-base-sm);color:var(--color-text-secondary);padding:.25rem 0}.portal-admin-instance-row{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;border-radius:var(--radius);font-size:var(--text-base-sm)}.portal-admin-instance-row:hover{background:var(--color-primary-light)}.portal-admin-instance-left{display:flex;align-items:center;gap:.4rem;min-width:0}.portal-admin-instance-module{font-weight:500;white-space:nowrap}.portal-admin-instance-sep{color:var(--color-text-secondary)}.portal-admin-instance-name{color:var(--color-text)}.portal-admin-badge-shared{display:inline-block;font-size:.6rem;background:#e8f4fd;color:#1a5276;padding:.05rem .3rem;border-radius:3px;font-weight:500;vertical-align:middle}.portal-admin-instance-right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.portal-admin-instance-mode{font-size:var(--text-xs);padding:.1rem .4rem;border-radius:3px;font-weight:500}.portal-admin-mode-free{background:var(--color-surface-muted);color:var(--color-text-muted)}.portal-admin-mode-test{background:#fef3cd;color:#856404}.portal-admin-mode-paid{background:var(--color-paid-bg);color:var(--color-paid-text)}.portal-admin-instance-items{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap}.portal-admin-instance-role{font-size:var(--text-xs);padding:.1rem .4rem;border-radius:3px;background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.portal-admin-mode-select{font-size:var(--text-xs);padding:.15rem .3rem;border-radius:3px;width:auto;min-width:100px;margin-bottom:0}.portal-admin-dashboard{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:1rem;background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border)}.portal-admin-stat{display:flex;flex-direction:column;align-items:center;min-width:4.5rem;padding:.5rem .75rem;border-radius:var(--radius);background:var(--color-bg);cursor:pointer;transition:outline .15s}.portal-admin-stat:hover{outline:2px solid var(--color-primary)}.portal-admin-stat-active{outline:2px solid var(--color-primary);background:var(--color-primary-light, #e0f2fe)}.portal-admin-stat-value{font-size:1.5rem;font-weight:700}.portal-admin-stat-label{font-size:var(--text-base-sm);color:var(--color-text-secondary)}.portal-admin-stat-free .portal-admin-stat-value{color:var(--color-text-secondary)}.portal-admin-stat-test .portal-admin-stat-value{color:#d97706}.portal-admin-stat-standard .portal-admin-stat-value{color:#2563eb}.portal-admin-stat-familie .portal-admin-stat-value{color:#7c3aed}.portal-admin-stat-premium .portal-admin-stat-value{color:#059669}.portal-admin-stat-premium-family .portal-admin-stat-value{color:#0d9488}.portal-admin-stat-returning .portal-admin-stat-value{color:#9333ea}.portal-admin-stat-tombstone .portal-admin-stat-value{color:#dc2626}@media(max-width:640px){.portal-admin-toolbar{flex-wrap:wrap;gap:var(--space-sm)}.portal-admin-toolbar .search-input{width:100%;order:-1}.portal-admin-dashboard{gap:.375rem;padding:.5rem}.portal-admin-stat{min-width:0;flex:1 1 auto;padding:.25rem .375rem}.portal-admin-stat-value{font-size:1.1rem}.portal-admin-stat-label{font-size:.65rem}}.portal-admin-subscription-section{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border)}.portal-admin-sub-status{font-weight:600}.portal-admin-sub-status-active{color:#059669}.portal-admin-sub-status-canceled{color:#dc2626}.portal-admin-sub-status-past_due{color:#d97706}.portal-admin-sub-cancel{color:#dc2626;font-size:var(--text-base-sm)}.portal-admin-plan-section{display:flex;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.portal-admin-plan-label{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.portal-admin-plan-select{font-size:.85rem;padding:.25rem .5rem;width:auto;min-width:140px}.portal-admin-plan-gifted{font-size:.75rem;color:#155724;background:#d4edda;padding:.15rem .5rem;border-radius:3px;font-weight:500}.portal-admin-apps-section{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md);margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.portal-admin-app-hint{font-size:var(--text-xs);color:var(--color-text-secondary);margin-left:.25rem}.portal-admin-app-public{opacity:.7}.portal-admin-modules-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.portal-admin-modules-section h2{font-size:var(--text-md);margin-bottom:.75rem}.portal-admin-module-row{display:flex;align-items:center;justify-content:space-between;padding:.4rem 0;font-size:var(--text-base)}.portal-admin-module-info{display:flex;flex-direction:column;gap:.1rem}.portal-admin-module-name{font-weight:500}.portal-admin-module-stats{font-size:var(--text-xs);color:var(--color-text-secondary)}.portal-admin-module-row+.portal-admin-module-row{border-top:1px solid var(--color-border)}.freezeme-page,.freeze-form-page,.admin-page{--color-primary: #0e7490;--color-primary-hover: #0b6078;--color-primary-light: #e0f7fa;--color-border: #d4e5e7;background-color:#fbf8f5;flex:1 0 auto}.workshop-page,.workshop-form-page,.workshop-admin-page{--color-primary: #9a6a1e;--color-primary-hover: #7c5518;--color-primary-light: #fef8ee;--color-border: #e2d6c6;background-color:#fbf8f5;flex:1 0 auto}.meditrack-page,.meditrack-form-page,.meditrack-admin-page{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #eff6ff;--color-border: #d0ddf5;background-color:#fbf8f5;flex:1 0 auto}.mt-category-filter{max-width:200px}.item-card.mt-expired:before{background:var(--color-danger)}.item-card.mt-expiring-soon:before{background:var(--color-expiry-orange)}.item-card.mt-expiring-quarter:before{background:var(--color-expiry-yellow)}.mt-prescription-badge{margin-left:.4rem;font-size:.85em;vertical-align:middle}.mt-category-badge{display:inline-block;font-size:var(--text-xs);padding:.1rem .5rem;border-radius:999px;background:var(--color-primary-light);color:var(--color-primary);white-space:nowrap}.mt-dosage-note{color:var(--color-primary);font-style:italic}.mt-checkbox-group{display:flex;flex-direction:column;justify-content:center}.mt-checkbox-label{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-base-lg);cursor:pointer;padding-top:.25rem}.mt-checkbox-label input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--color-primary)}.meditrack-form-page{max-width:700px}.supplies-page,.supplies-form-page,.supplies-admin-page{--color-primary: #a0522d;--color-primary-hover: #874525;--color-primary-light: #faf0ea;--color-border: #ddc4b4;background-color:#fbf8f5;flex:1 0 auto}.supplies-tabs{display:flex;border-bottom:2px solid #ddc4b4;margin-bottom:.75rem}.supplies-tab{flex:1;padding:.5rem .25rem;background:none;border:none;cursor:pointer;font-size:.95rem;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:flex;align-items:center;justify-content:center;gap:.35rem}.supplies-tab:hover{color:#374151}.supplies-tab.active{color:var(--color-primary, #a0522d);border-bottom-color:var(--color-primary, #a0522d);font-weight:600}.supplies-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;font-size:.75rem;font-weight:600;background:#e5e7eb;color:#6b7280}.supplies-tab.active .supplies-tab-count{background:var(--color-primary, #a0522d);color:#fff}.item-card-depleted{opacity:.7}.item-card-depleted:before{background:#9ca3af!important}.btn-grocery-add{background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;border-radius:4px;transition:color .15s,background .15s;display:inline-flex;align-items:center}.btn-grocery-add:hover{color:#7c3aed;background:#7c3aed14}.supplies-grocery-dialog select{width:100%;padding:.5rem;border:1px solid var(--color-border, #ddc4b4);border-radius:6px;font-size:.95rem;margin:.5rem 0}.supplies-grocery-dialog .grocery-success{color:#16a34a;font-weight:600;text-align:center;padding:1rem 0}.supplies-filter-row{display:flex;gap:var(--space-sm);margin-bottom:1rem}.supplies-category-filter{flex:1;min-width:0;max-width:220px;font-size:var(--text-sm);padding:.3rem .5rem}.supplies-compact-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.5rem;max-width:1400px}.supplies-compact-card{display:flex;flex-direction:column;gap:.25rem;padding:.6rem .75rem .5rem calc(.75rem + 4px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;position:relative;overflow:hidden;transition:background .15s,transform .1s,box-shadow .15s;min-height:64px}.supplies-compact-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--color-primary);border-radius:var(--radius) 0 0 var(--radius)}.supplies-compact-card:hover{background:var(--color-primary-light);transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.supplies-compact-card:active{transform:scale(.99)}.supplies-compact-card.expired:before{background:var(--color-danger)}.supplies-compact-card.expiring-soon:before{background:var(--color-expiry-orange)}.supplies-compact-card.expiring-month:before{background:var(--color-expiry-yellow)}.supplies-card-row1{display:flex;align-items:center;gap:.5rem;min-width:0}.supplies-compact-photo{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;border-radius:50%;background:var(--color-primary-light);flex-shrink:0}.supplies-compact-name{flex:1;font-weight:600;font-size:var(--text-base-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.supplies-card-category{font-size:var(--text-xs);color:var(--color-primary);background:var(--color-primary-light);padding:.1rem .45rem;border-radius:999px;white-space:nowrap;flex-shrink:0;max-width:120px;overflow:hidden;text-overflow:ellipsis}.supplies-card-row2{display:flex;align-items:center;gap:.5rem;padding-left:calc(32px + .5rem);min-width:0}.supplies-compact-location{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.supplies-card-qty-wrap{display:flex;align-items:center;gap:.25rem;flex-shrink:0;margin-left:auto}.supplies-card-qty-label{font-size:var(--text-xs);color:var(--color-text-muted)}.supplies-compact-qty{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;font-weight:500}.supplies-compact-qty .inline-quantity-input{width:3.5rem}.supplies-card-dash{background:none;border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;line-height:1;transition:color .15s,background .15s,border-color .15s;flex-shrink:0;padding:0;position:relative}.supplies-card-dash:after{content:"";position:absolute;inset:-8px -12px -8px -8px}.supplies-card-dash:hover{color:var(--color-danger);border-color:var(--color-danger);background:#ef444414}.supplies-compact-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.btn-icon-compact{background:none;border:none;cursor:pointer;color:#9ca3af;padding:3px;border-radius:4px;display:inline-flex;align-items:center;transition:color .15s,background .15s}.btn-icon-compact:hover{color:var(--color-primary);background:#0000000d}@media(max-width:480px){.supplies-card-category{max-width:90px}}.supplies-category-badge{display:inline-block;font-size:var(--text-xs);padding:.1rem .5rem;border-radius:999px;background:var(--color-primary-light);color:var(--color-primary);white-space:nowrap}.groceries-page,.groceries-form-page,.groceries-admin-page{--color-primary: #7c3aed;--color-primary-hover: #6d28d9;--color-primary-light: #f3effe;--color-border: #d4c8e8;background-color:#fbf8f5;flex:1 0 auto}.groceries-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.5rem;max-width:1400px}.groceries-item{display:flex;flex-direction:column;gap:.25rem;padding:.6rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;position:relative;transition:opacity .2s,transform .15s,box-shadow .15s,border-color .15s;min-height:64px}.groceries-item:hover{transform:translateY(-1px);box-shadow:0 2px 8px #7c3aed14;border-color:var(--color-primary)}.groceries-item-checked{opacity:.5}.groceries-item-checked .groceries-item-name{text-decoration:line-through;color:#767676}.groceries-card-row1{display:flex;align-items:center;gap:.5rem;min-width:0}.groceries-checkbox{width:22px;height:22px;min-width:22px;border:2px solid var(--color-primary);border-radius:6px;background:var(--color-surface);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--color-surface);transition:background .15s,color .15s;padding:0;flex-shrink:0}.groceries-checkbox-checked{background:linear-gradient(135deg,var(--color-primary),#6d28d9);color:#fff;box-shadow:0 2px 4px #7c3aed4d}.groceries-checkbox:hover{background:var(--color-primary-light)}.groceries-item-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;border-radius:50%;background:var(--color-primary-light);flex-shrink:0}.groceries-item-name{flex:1;font-weight:600;font-size:var(--text-base-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.groceries-comment-badge{font-size:var(--text-xs);flex-shrink:0;line-height:1}.groceries-item-category{font-size:var(--text-xs);color:var(--color-primary);background:var(--color-primary-light);padding:.1rem .45rem;border-radius:999px;white-space:nowrap;flex-shrink:0;font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis}.groceries-card-row2{display:flex;align-items:center;gap:.5rem;padding-left:calc(54px + 1rem);min-width:0}.groceries-item-details{flex:1;font-size:var(--text-xs);color:var(--color-text-muted);display:flex;flex-wrap:wrap;align-items:center;min-width:0}.groceries-card-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto}.groceries-item-delete,.groceries-item-transfer{flex-shrink:0}@media(max-width:480px){.groceries-card-row2{padding-left:calc(54px + 1rem)}.groceries-item-category{max-width:90px}}.groceries-checked-section{margin-top:1.5rem}.groceries-sort-toggle{display:inline-grid;grid-template-columns:auto 1fr;align-items:center;justify-items:center;gap:.35rem;width:auto;cursor:pointer;white-space:nowrap;font-weight:500;color:var(--color-primary);background:transparent;border-color:var(--color-primary);text-align:center;padding:.5rem 1rem;overflow:hidden;-webkit-appearance:none;appearance:none}.groceries-sort-toggle:hover{background:#7c3aed0a}.sort-toggle-measure,.sort-toggle-roller{grid-column:2;grid-row:1}.sort-toggle-measure{visibility:hidden;pointer-events:none}.sort-toggle-roller{position:relative;display:flex;align-items:center;justify-content:center;height:1.2em;overflow:hidden}.sort-toggle-out{position:absolute;animation:sort-roll-out .25s ease-in forwards}.sort-toggle-in{animation:sort-roll-in .25s ease-out forwards}@keyframes sort-roll-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(-1.2em);opacity:0}}@keyframes sort-roll-in{0%{transform:translateY(1.2em);opacity:0}to{transform:translateY(0);opacity:1}}.groceries-category-header{grid-column:1 / -1;font-size:var(--text-sm);font-weight:600;color:var(--color-primary);padding:.5rem 0 .25rem;margin-top:.5rem;border-bottom:1px solid var(--color-border)}.groceries-category-header:first-child{margin-top:0}.groceries-checked-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.groceries-delete-checked{color:var(--color-danger);font-size:var(--text-sm)}.groceries-list-checked{opacity:.7}.admin-stores-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.admin-stores-section h2{margin-bottom:1rem}.portal-card-emoji{font-size:var(--text-5xl);display:block;margin-bottom:.5rem}.navbar-submenu-emoji{font-size:var(--text-lg);margin-right:.25rem}.ws-category-filter{max-width:250px}.workshop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-sm)}.workshop-item{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:background .1s ease;overflow:hidden;min-width:0}.workshop-item:hover{background:var(--color-primary-light)}.workshop-item:active{transform:scale(.98)}.workshop-item-content{display:flex;align-items:center;gap:var(--space-sm);flex:1;min-width:0;cursor:pointer}.workshop-item-icon{position:relative;flex-shrink:0;font-size:var(--text-lg);width:28px;text-align:center}.workshop-item-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-base)}.workshop-item-cat{font-weight:500}.workshop-item-sep{color:var(--color-text-secondary);margin:0 .1em}.workshop-item-detail{color:var(--color-text-secondary)}.workshop-item-actions{flex-shrink:0;display:flex;gap:var(--space-sm)}.ws-cat-group{margin-bottom:1rem}.ws-cat-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);font-weight:600}.ws-cat-header-left{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.ws-cat-toggle{background:none;border:none;padding:0;font-family:inherit;cursor:pointer;font-size:var(--text-2xs);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;flex-shrink:0;width:1rem;text-align:center}.ws-cat-toggle:hover{color:var(--color-primary)}.ws-cat-sub-count{font-size:var(--text-xs);font-weight:400;color:var(--color-text-secondary);flex-shrink:0}.ws-cat-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;padding:.25rem 0}.ws-cat-header-right{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.ws-cat-header-inactive{opacity:.6}.ws-cat-header-inactive .btn-photo,.ws-cat-header-inactive .btn-photo-delete{display:none}.ws-cat-header-ghost{font-weight:400;background:transparent;border-color:transparent;padding-bottom:.25rem}.ws-sub-item{display:flex;align-items:center;gap:.4rem;padding:.35rem .75rem .35rem 2.5rem;font-size:var(--text-base)}.ws-sub-item-ghost{opacity:.5}.ws-sub-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.35rem 0}.ws-deactivated-badge{display:inline-block;font-size:var(--text-2xs);font-weight:500;background:var(--color-expired);color:var(--color-danger);padding:.1rem .35rem;border-radius:3px;vertical-align:middle;flex-shrink:0}.item-counter{font-size:var(--text-sm);color:var(--color-text-secondary);padding:.2rem .5rem;background:var(--color-primary-light);border-radius:4px;white-space:nowrap}.item-counter-limit{background:var(--color-expired);color:var(--color-danger);font-weight:600}.mode-banner{text-align:center;padding:.5rem 1rem;border-radius:var(--radius);font-size:var(--text-base-sm);margin-bottom:1rem}.mode-banner-test{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid #fcd34d}.mode-banner-expired{background:var(--color-expired);color:var(--color-danger);border:1px solid #fca5a5}.mode-banner-warning{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.mode-banner-free{background:#eff6ff;color:#1e40af;border:1px solid #93c5fd}.mode-banner-upgrade-btn{background:none;border:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:inherit;margin-left:.5rem}.upgrade-hint{text-align:center;padding:2rem;color:var(--color-text-secondary);font-size:var(--text-base-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-top:1rem}.settings-page{padding:2rem;max-width:700px;margin:0 auto;width:100%}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:var(--space-sm)}.settings-header h1{font-size:var(--text-2xl)}.settings-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.settings-section h2{font-size:var(--text-lg);margin-bottom:1rem}.settings-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.settings-section-header h2{margin-bottom:0}.settings-name-row{margin-bottom:1rem}.settings-name-edit{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.settings-name-edit .form-input{flex:1;min-width:150px}.settings-name-display{display:flex;align-items:center;gap:var(--space-sm)}.settings-name-value{font-size:var(--text-lg);font-weight:600}.settings-info-row{display:flex;gap:var(--space-sm);padding:.35rem 0;font-size:var(--text-base)}.settings-info-label{color:var(--color-text-secondary);min-width:80px}.settings-tile-color-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.settings-color-picker{width:48px;height:48px;border:2px solid var(--color-border);border-radius:var(--radius);cursor:pointer;padding:2px;background:var(--color-surface)}.settings-tile-preview{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem 1rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);min-width:140px}.settings-tile-preview-logo{height:24px;width:auto}.settings-tile-preview-emoji{font-size:var(--text-xl)}.settings-tile-preview-name{font-weight:600;font-size:var(--text-base)}.settings-member-list{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-member-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border:1px solid var(--color-border);border-radius:6px;gap:var(--space-md);flex-wrap:wrap}.settings-member-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.settings-member-name{font-weight:500;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.settings-member-email{font-size:var(--text-sm);color:var(--color-text-secondary)}.settings-member-badge{font-size:var(--text-2xs);background:var(--color-primary-light);color:var(--color-primary);padding:.1rem .35rem;border-radius:4px;font-weight:600}.settings-member-badge-owner{background:var(--color-warning-bg);color:var(--color-warning-text)}.settings-member-actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.settings-role-select{width:auto;min-width:120px;padding:.3rem .5rem;font-size:var(--text-base-sm)}.settings-role-label{font-size:var(--text-base-sm);color:var(--color-text-secondary);padding:.3rem .5rem}.settings-invite-list{display:flex;flex-direction:column;gap:.4rem}.settings-invite-row{display:flex;gap:var(--space-lg);font-size:var(--text-base-sm);padding:.4rem 0;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.settings-invite-role{font-weight:500;color:var(--color-text)}.settings-section-hint{font-size:var(--text-base-sm);color:var(--color-text-secondary);margin-bottom:.75rem}.settings-invite-done{opacity:.7}.settings-invite-status{margin-left:auto;font-size:var(--text-sm);font-weight:500}.settings-invite-status.status-accepted{color:var(--color-primary)}.settings-invite-status.status-expired{color:#b45309}.settings-invite-status.status-declined{color:var(--color-danger)}.settings-invite-email{font-size:var(--text-sm);color:var(--color-text-secondary)}.settings-invite-type{font-size:var(--text-xs);color:var(--color-text-secondary);opacity:.7}.settings-invite-header{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.settings-invite-header h2{margin:0}.settings-invite-delete{margin-left:auto;color:var(--color-text-secondary)}.settings-invite-delete:hover{color:var(--color-danger)}.form-hint{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:.5rem}.portal-admin-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.audit-page{width:100%;max-width:1000px;margin:0 auto;padding:1.5rem;box-sizing:border-box}.audit-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.audit-header h1{font-size:var(--text-2xl)}.audit-toolbar{display:flex;gap:var(--space-md);align-items:center;margin-bottom:1rem;flex-wrap:wrap}.audit-toolbar .search-input{width:250px;min-width:0}.audit-date-filter{width:160px}.audit-filter-select{width:180px}.audit-count{color:var(--color-text-secondary);font-size:var(--text-base-sm);white-space:nowrap}.audit-list{display:flex;flex-direction:column;gap:2px;width:100%}.audit-row{display:grid;grid-template-columns:140px 180px 100px 1fr;gap:var(--space-md);align-items:center;padding:.5rem .75rem;background:var(--color-surface);border-radius:var(--radius);font-size:var(--text-base);min-width:0}.audit-row:hover{background:var(--color-primary-light)}.audit-row:nth-child(2n){background:#00000004}.audit-row:nth-child(2n):hover{background:var(--color-primary-light)}.audit-timestamp{color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap}.audit-user{color:var(--color-text);font-size:var(--text-base-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:var(--text-xs);font-weight:600;text-align:center;white-space:nowrap}.audit-badge-create{background:var(--color-success-bg);color:var(--color-success-text)}.audit-badge-update{background:#dbeafe;color:#1e40af}.audit-badge-delete{background:var(--color-danger-bg);color:var(--color-danger-text)}.audit-badge-toggle{background:var(--color-warning-bg);color:var(--color-warning-text)}.audit-badge-login{background:#e0e7ff;color:#3730a3}.audit-badge-register{background:#ede9fe;color:#5b21b6}.audit-badge-invite{background:#fce7f3;color:#9d174d}.audit-badge-accept_invite{background:#d1fae5;color:#065f46}.audit-badge-mode_change{background:#fff7ed;color:#9a3412}.audit-badge-role_change{background:#fef9c3;color:#854d0e}.audit-badge-member_remove{background:#fecaca;color:#7f1d1d}.audit-details{color:var(--color-text);font-size:var(--text-base-sm);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.audit-instance-tag{display:inline-block;margin-left:.5rem;padding:.1rem .4rem;background:var(--color-primary-light);color:var(--color-primary);border-radius:4px;font-size:var(--text-xs);font-weight:500}.audit-load-more{text-align:center;margin-top:1rem}.audit-detail-dialog{min-width:380px;max-width:520px}.audit-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.audit-detail-header h3{font-size:var(--text-lg);margin:0}.audit-detail-grid{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.25rem}.audit-detail-row{display:flex;gap:var(--space-md)}.audit-detail-label{flex:0 0 120px;color:var(--color-text-secondary);font-size:var(--text-base-sm);font-weight:500}.audit-detail-value{color:var(--color-text);font-size:var(--text-base);word-break:break-word}.settings-audit-desc{color:var(--color-text-secondary);font-size:var(--text-base);margin-bottom:.75rem}.help-page{padding:2rem;max-width:800px;margin:0 auto;width:100%;line-height:1.7}.help-page h1{font-size:var(--text-3xl);color:var(--color-primary);margin-bottom:1.5rem}.help-page h2{font-size:var(--text-xl);margin-bottom:.75rem;color:var(--color-text)}.help-page h3{font-size:var(--text-md);margin-top:1rem;margin-bottom:.5rem}.help-page p,.help-page ul,.help-page ol{margin-bottom:.75rem}.help-page ul,.help-page ol{padding-left:1.5rem}.help-page li{margin-bottom:.35rem}.help-page kbd{display:inline-block;padding:.15rem .4rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;font-size:.85em;font-family:inherit;box-shadow:0 1px #00000014}.help-header{margin-bottom:1rem}.help-toc{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:2rem}.help-toc h2{font-size:var(--text-md);margin-bottom:.5rem}.help-toc ol{padding-left:1.25rem;margin-bottom:0}.help-toc li{margin-bottom:.25rem}.help-toc a{color:var(--color-primary);text-decoration:none}.help-toc a:hover{text-decoration:underline}.help-section{scroll-margin-top:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.help-section:last-child{border-bottom:none}.help-screenshot{margin:1.25rem 0;text-align:center}.help-screenshot img{max-width:100%;width:420px;border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 2px 8px #00000014}.help-screenshot figcaption{margin-top:.5rem;font-size:var(--text-base-sm);color:var(--color-text-secondary);font-style:italic}.help-top-link{text-align:right;margin-top:.75rem;margin-bottom:0}.help-top-link a{color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-base-sm)}.help-top-link a:hover{color:var(--color-primary)}.help-shortcut-table{width:100%;border-collapse:collapse;margin-bottom:.75rem;font-size:var(--text-base)}.help-shortcut-table th,.help-shortcut-table td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--color-border)}.help-shortcut-table th{background:var(--color-bg);font-weight:600;font-size:var(--text-base-sm);color:var(--color-text-secondary)}.help-shortcut-table tr:last-child td{border-bottom:none}.help-faq{margin-bottom:0}.help-faq dt{font-weight:600;margin-top:1rem;margin-bottom:.25rem}.help-faq dt:first-child{margin-top:0}.help-faq dd{margin-left:0;margin-bottom:.5rem;color:var(--color-text-secondary)}.help-module-link{margin-bottom:.5rem}.help-module-link a{color:var(--color-primary);text-decoration:none;font-size:var(--text-base)}.help-module-link a:hover{text-decoration:underline}.help-module-links ul{list-style:none;padding-left:0}.help-module-links li{margin-bottom:.5rem}.help-module-links a{color:var(--color-primary);text-decoration:none;font-weight:500}.help-module-links a:hover{text-decoration:underline}.portal-module-help{width:28px;height:28px;min-width:28px;border-radius:50%;padding:0;font-size:var(--text-base-sm);font-weight:700;color:var(--color-text-secondary);line-height:1}.portal-module-help:hover{color:var(--color-primary)}.maintenance-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.maintenance-card{background:var(--color-surface);padding:3rem 2.5rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:480px;width:90%;text-align:center;border:1px solid var(--color-border)}.maintenance-logo{height:60px;width:auto;margin-bottom:1.5rem}.maintenance-card h1{font-size:var(--text-2xl);color:var(--color-primary);margin-bottom:1rem}.maintenance-card p{color:var(--color-text-secondary);font-size:var(--text-base-lg);margin-bottom:.75rem}.maintenance-message{background:var(--color-warning-bg);color:var(--color-warning-text);padding:.75rem;border-radius:var(--radius);border:1px solid #fcd34d;font-style:italic}.maintenance-banner{background:var(--color-warning-bg);color:var(--color-warning-text);text-align:center;padding:.4rem 1rem;font-size:var(--text-base-sm);font-weight:500;border-bottom:1px solid #fcd34d}.maintenance-countdown-banner{background:var(--color-danger-bg);color:var(--color-danger-text);text-align:center;padding:.5rem 1rem;font-size:var(--text-base);font-weight:500;border-bottom:1px solid #fca5a5}.maintenance-countdown-time{font-weight:700;font-size:var(--text-md);font-variant-numeric:tabular-nums}.portal-admin-maintenance-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.portal-admin-maintenance-section h2{font-size:var(--text-md);margin-bottom:.75rem}.portal-admin-maintenance-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.portal-admin-maintenance-info{display:flex;align-items:center;gap:var(--space-md)}.portal-admin-maintenance-status{font-weight:600;font-size:var(--text-base);padding:.2rem .6rem;border-radius:4px;background:var(--color-surface-muted);color:var(--color-text-muted)}.portal-admin-maintenance-status.active{background:var(--color-warning-bg);color:var(--color-warning-text)}.portal-admin-maintenance-status.scheduled{background:var(--color-danger-bg);color:var(--color-danger-text)}.portal-admin-maintenance-detail{font-size:var(--text-sm);color:var(--color-text-secondary)}.portal-admin-maintenance-actions{display:flex;align-items:center;gap:var(--space-sm)}.portal-admin-maintenance-message{margin-top:.75rem}.portal-admin-maintenance-message textarea{resize:vertical;min-height:50px}.portal-admin-maintenance-current-msg{margin-top:.75rem;font-size:var(--text-base-sm);color:var(--color-text-secondary);font-style:italic}.admin-layout{display:flex;flex:1;min-height:0}.admin-sidebar{width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:1.25rem 0}.admin-sidebar-header{padding:0 1rem 1rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.admin-sidebar-header h2{font-size:var(--text-lg);margin:0}.admin-sidebar-nav{display:flex;flex-direction:column;padding:.5rem 0}.admin-sidebar-item{display:block;padding:.6rem 1.25rem;color:var(--color-text);text-decoration:none;font-size:var(--text-base);transition:background .15s ease}.admin-sidebar-item:hover{background:var(--color-primary-light)}.admin-sidebar-item-active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600;border-left:3px solid var(--color-primary);padding-left:calc(1.25rem - 3px)}.admin-content{flex:1;padding:1.5rem;min-width:0;max-width:1000px;overflow-y:auto}.admin-content h1{font-size:var(--text-2xl);margin-bottom:1.5rem}.analytics-dashboard{max-width:1100px}.analytics-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.analytics-header h1{margin-bottom:0}.analytics-time-range{display:flex;gap:.25rem}.analytics-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.analytics-kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;text-align:center;display:flex;flex-direction:column;gap:.25rem}.analytics-kpi-value{font-size:var(--text-2xl);font-weight:700;color:var(--color-primary)}.analytics-kpi-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.analytics-chart-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem}.analytics-chart-section h2{font-size:var(--text-lg);margin-bottom:1rem}.analytics-charts-row{display:flex;gap:1.5rem;margin-bottom:0}.analytics-chart-half{flex:1;min-width:0}.analytics-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.analytics-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--color-border);font-weight:600;color:var(--color-text-secondary)}.analytics-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border)}.analytics-table tbody tr:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.analytics-table-num{text-align:right;font-variant-numeric:tabular-nums}.analytics-no-data{text-align:center;color:var(--color-text-secondary);padding:2rem;font-style:italic}.analytics-loading{text-align:center;color:var(--color-text-secondary);padding:3rem}@media(max-width:768px){.analytics-kpi-grid{grid-template-columns:repeat(2,1fr)}.analytics-charts-row{flex-direction:column}.analytics-header{flex-direction:column;align-items:flex-start}}.release-notes-page{padding:2rem;max-width:700px;margin:0 auto;width:100%}.release-notes-header{margin-bottom:1rem}.release-notes-title{font-size:var(--text-xl);font-weight:600;color:var(--color-text-dark);letter-spacing:.02em;margin-bottom:1.5rem;padding-bottom:.6rem;border-bottom:2px solid var(--color-border)}.release-notes-entry{margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--color-surface);border-radius:var(--radius);border-left:3px solid var(--color-primary);box-shadow:var(--shadow)}.release-notes-entry-header{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:.5rem;flex-wrap:wrap}.release-notes-version{font-size:.8rem;font-weight:700;color:var(--color-primary);background:#eff6ff;padding:.1rem .5rem;border-radius:6px;white-space:nowrap;letter-spacing:.02em}.release-notes-date{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;margin-left:auto}.release-notes-entry-title{font-size:var(--text-md);font-weight:600;color:var(--color-text)}.release-notes-changes{margin:0;padding-left:1.25rem;font-size:var(--text-base);color:#555;line-height:1.6}.release-notes-changes li{margin-bottom:.2rem}@media(max-width:640px){.navbar{padding:.5rem .75rem}.app-main{top:51px;display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-sidebar{display:none}.app-content{display:flex;flex-direction:column;min-height:100%}.navbar-brand{font-size:var(--text-md)}.navbar-brand-logo{max-height:22px;max-width:140px}.navbar-app-logo{height:30px}.navbar-menu{right:0}.navbar-submenu{position:static;box-shadow:none;border:none;border-radius:0;border-top:1px solid var(--color-border);margin-right:0;min-width:0}.navbar-submenu-item{padding-left:2rem}.module-page,.module-form-page,.module-admin-page,.help-page,.release-notes-page{padding:.75rem}.module-form-page{min-height:calc(100vh + 1px)}.form-floating-save-btn,.form-floating-cancel-btn{display:flex;align-items:center;justify-content:center;position:fixed;top:56px;z-index:50;width:2.2rem;height:2.2rem;border-radius:50%;border:none;font-size:1.2rem;line-height:1;padding:0;cursor:pointer;box-shadow:0 2px 6px #00000026;opacity:.75}.form-floating-save-btn{right:.75rem;background:var(--color-primary);color:#fff}.form-floating-cancel-btn{right:3.25rem;background:#fff;color:#6b7280;border:1.5px solid #d1d5db}.form-floating-save-btn:disabled{opacity:.4;cursor:not-allowed}.module-header{flex-wrap:nowrap;gap:var(--space-sm);margin-bottom:1rem}.module-header h1{font-size:var(--text-lg);white-space:nowrap}.instance-title-name{font-size:var(--text-sm);max-width:100%}.instance-title-back{font-size:12px}.module-toolbar{gap:var(--space-sm)}.module-toolbar .btn{font-size:var(--text-sm);padding:.4rem .6rem;white-space:nowrap}.mt-category-filter{max-width:100%;flex:1}.supplies-category-filter{max-width:100%}.supplies-filter-row{margin-bottom:.75rem}.help-page h1{font-size:1.35rem}.workshop-grid{grid-template-columns:1fr}.ws-category-filter{max-width:100%;flex:1}.search-input{max-width:100%;flex:1;min-width:0}.shortcut-badge,.search-shortcut-badge{display:none}.search-input-wrapper{max-width:100%;flex:1;min-width:0}.search-input-wrapper .search-input{padding-right:.75rem}.freezeme-toolbar .btn{font-size:var(--text-sm);padding:.4rem .6rem;white-space:nowrap}.form-row{flex-direction:column;gap:0}.form-group-half,.form-group-third{max-width:100%;width:100%}.form-row-food,.form-row-location{flex-direction:row}.form-row-cat-qty,.form-row.form-row-inline{flex-direction:row;gap:var(--space-md)}.form-row.form-row-inline .form-group-half,.form-row.form-row-inline .form-group-third{flex:1;max-width:none;width:auto;min-width:0}.reminder-datetime-row{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.reminder-datetime-row>.form-group:first-child{flex:1;min-width:0}.reminder-datetime-row>.reminder-allday-toggle{flex-shrink:0}.reminder-datetime-row>.form-group:not(:first-child):not(.reminder-allday-toggle){flex:1}.item-card{padding:.75rem;padding-left:calc(.75rem + 4px)}.item-card-main{align-items:baseline}.item-card-content h3{font-size:var(--text-md)}.item-card-details{align-items:flex-end;flex-shrink:0;text-align:right}.item-card-meta{font-size:var(--text-xs)}.item-card-actions .btn{font-size:var(--text-xs);padding:.2rem .4rem}.admin-page h1{font-size:var(--text-xl)}.admin-columns{grid-template-columns:1fr}.admin-tabs{flex-wrap:nowrap}.admin-search-input{max-width:100%;flex:1 1 100%}.admin-add-form{gap:var(--space-sm)}.admin-list-item{padding:.4rem .5rem;font-size:var(--text-base);flex-wrap:wrap;gap:var(--space-xs)}.btn-photo{width:28px;height:28px;font-size:var(--text-sm)}.portal-admin-page{padding:.75rem}.portal-admin-header{flex-wrap:wrap;gap:var(--space-sm)}.portal-admin-header h1{font-size:var(--text-xl)}.portal-admin-card-main{flex-direction:column;align-items:flex-start}.portal-admin-card-actions{flex-wrap:wrap}.portal-admin-confirm-bar{flex-wrap:wrap;font-size:var(--text-base-sm)}.portal-admin-details-grid{grid-template-columns:1fr}.portal-admin-instance-row{flex-direction:column;align-items:flex-start;gap:.2rem}.profile-page,.audit-page{padding:.75rem}.audit-header{flex-wrap:wrap;gap:var(--space-sm)}.audit-header h1{font-size:var(--text-xl)}.audit-row{grid-template-columns:1fr;gap:var(--space-xs);padding:.75rem;border-bottom:1px solid var(--color-border)}.portal-admin-header-actions{flex-wrap:wrap}.admin-layout{flex-direction:column}.admin-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--color-border);padding:.75rem 0 0}.admin-sidebar-header{padding:0 .75rem .5rem}.admin-sidebar-header h2{font-size:var(--text-md)}.admin-sidebar-nav{flex-direction:row;padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:wrap}.admin-sidebar-item{padding:.5rem .75rem;white-space:nowrap;font-size:var(--text-base-sm);border-left:none}.admin-sidebar-item-active{border-left:none;padding-left:.75rem;border-bottom:2px solid var(--color-primary)}.admin-content{padding:.75rem}.admin-content h1{font-size:var(--text-xl);margin-bottom:1rem}.portal-mobile-header{display:flex;align-items:center;padding:.75rem .75rem 0}.portal-content{padding:.75rem}.btn-sm,.item-card-actions .btn,.admin-list-item .btn{min-height:44px;min-width:44px}}.global-admin-page h2{font-size:var(--text-2xl);margin-bottom:.25rem}.admin-hint{color:var(--color-text-muted);font-size:var(--text-base);margin-bottom:1.5rem}.admin-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:2rem}.admin-list-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:8px}.admin-list-info{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.admin-list-email{font-weight:500}.admin-list-name{color:var(--color-text-muted);font-size:var(--text-base)}.admin-list-badge{background:var(--color-primary);color:var(--color-on-dark);font-size:var(--text-xs);padding:.1rem .5rem;border-radius:10px}.admin-add-section{border-top:1px solid var(--color-border-light);padding-top:1.5rem}.admin-add-section h3{font-size:var(--text-lg);margin-bottom:.75rem}.admin-add-row{display:flex;gap:var(--space-md);align-items:center}.admin-add-select{flex:1;padding:.5rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:var(--text-base-lg);max-width:400px}.ai-knowledge-admin h2{font-size:var(--text-2xl);margin-bottom:.25rem}.ai-knowledge-toolbar{display:flex;gap:var(--space-md);align-items:center;margin-bottom:1.25rem}.ai-knowledge-search{flex:1;padding:.5rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:var(--text-base-lg);max-width:400px}.ai-knowledge-list{display:flex;flex-direction:column;gap:var(--space-sm)}.ai-knowledge-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:8px;padding:.75rem 1rem}.ai-knowledge-card-inactive{opacity:.55}.ai-knowledge-card-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:.5rem}.ai-knowledge-badge{font-size:var(--text-xs);padding:.1rem .5rem;border-radius:10px;background:var(--color-bg-muted);color:var(--color-text);font-weight:500}.ai-knowledge-badge-freezeme{background:#e0f2f1;color:#0e7490}.ai-knowledge-badge-workshop{background:#fef3c7;color:#9a6a1e}.ai-knowledge-badge-meditrack{background:#dbeafe;color:#2563eb}.ai-knowledge-badge-supplies{background:#fde68a;color:#8b6914}.ai-knowledge-badge-groceries{background:#ede9fe;color:#7c3aed}.ai-knowledge-badge-rlstorage{background:#e2e8f0;color:#1a365d}.ai-knowledge-badge-reminder{background:#f3e8ff;color:#9333ea}.ai-knowledge-badge-portal{background:#e0e7ff;color:#4338ca}.ai-knowledge-badge-allgemein{background:var(--color-bg-muted);color:var(--color-text)}.ai-knowledge-status{font-size:var(--text-xs);font-weight:500}.ai-knowledge-status.status-active{color:var(--color-success)}.ai-knowledge-status.status-inactive{color:var(--color-text-muted)}.ai-knowledge-card-body{cursor:pointer;margin-bottom:.5rem}.ai-knowledge-card-body strong{display:block;margin-bottom:.25rem}.ai-knowledge-answer-preview{color:var(--color-text-muted);font-size:var(--text-base);margin:0}.ai-knowledge-card-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.ai-knowledge-dialog{max-width:560px;width:90vw}.ai-knowledge-dialog .form-group{margin-bottom:.75rem}.ai-knowledge-dialog label{display:block;font-weight:500;margin-bottom:.25rem;font-size:var(--text-base)}.ai-knowledge-dialog input[type=text],.ai-knowledge-dialog input[type=number],.ai-knowledge-dialog textarea,.ai-knowledge-dialog select{width:100%;padding:.5rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:var(--text-base-lg);font-family:inherit}.ai-knowledge-dialog textarea{resize:vertical}.ai-knowledge-dialog-row{display:flex;gap:var(--space-md)}.ai-knowledge-active-toggle{display:flex;align-items:center;gap:.5rem;font-weight:500;margin-bottom:1rem;cursor:pointer}.ai-knowledge-active-toggle input[type=checkbox]{width:1.1rem;height:1.1rem}.documentation-admin h2{font-size:var(--text-2xl);margin-bottom:.25rem}.doc-section-title{font-size:1.05rem;margin:1.75rem 0 .75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.doc-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.doc-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:1.25rem 1.5rem;text-decoration:none;color:var(--color-text);transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;text-align:left;font-family:inherit;font-size:inherit}.doc-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:var(--color-primary)}.doc-card-icon{font-size:1.75rem;line-height:1}.doc-card-title{font-size:1.05rem;font-weight:700}.doc-card-description{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.5}.doc-card-tags{margin-top:auto;padding-top:.5rem;display:flex;gap:.5rem;flex-wrap:wrap}.doc-card-tag{display:inline-block;padding:.15rem .5rem;border-radius:6px;font-size:var(--text-xs);font-weight:500;background:var(--color-bg-muted);color:var(--color-text-muted);border:1px solid var(--color-border-light)}.doc-viewer-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border-light)}.doc-viewer-title{flex:1;font-weight:600;font-size:var(--text-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-viewer-frame{width:100%;height:calc(100vh - 200px);border:1px solid var(--color-border-light);border-radius:8px;background:#fff}@media(max-width:768px){.doc-card-grid{grid-template-columns:1fr}.doc-viewer-frame{height:calc(100vh - 180px)}}.reload-prompt{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:var(--color-surface-dark);color:var(--color-on-dark);padding:.75rem 1.25rem;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);box-shadow:0 4px 16px #00000040;z-index:10000;font-size:var(--text-base);animation:reload-slide-up .3s ease-out}.reload-prompt-text{white-space:nowrap}.reload-prompt-btn{background:var(--color-primary);color:var(--color-on-dark);border:none;padding:.4rem .85rem;border-radius:6px;font-size:var(--text-base-sm);font-weight:600;cursor:pointer;white-space:nowrap}.reload-prompt-btn:hover{opacity:.9}@keyframes reload-slide-up{0%{transform:translate(-50%) translateY(100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--color-surface-dark);color:var(--color-on-dark);padding:.75rem 1.5rem;border-radius:8px;border-left:4px solid var(--color-success);font-size:var(--text-base-lg);z-index:10000;pointer-events:none;animation:toast-lifecycle 3s ease-in-out forwards}@keyframes toast-lifecycle{0%{opacity:0;transform:translate(-50%) translateY(20px)}10%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}.pwa-install-banner{position:fixed;bottom:1rem;left:1rem;right:1rem;background:var(--color-surface-dark);color:var(--color-on-dark);padding:1rem 1.25rem;border-radius:12px;box-shadow:0 4px 16px #0000004d;z-index:9999;animation:pwa-slide-up .3s ease-out;max-width:420px;margin:0 auto}.pwa-install-close{position:absolute;top:.5rem;right:.75rem;background:none;border:none;color:#aaa;font-size:1.4rem;cursor:pointer;padding:0;line-height:1}.pwa-install-close:hover{color:var(--color-on-dark)}.pwa-install-title{font-weight:700;font-size:var(--text-md);margin-bottom:.25rem}.pwa-install-text{font-size:var(--text-base-sm);color:#ccc;margin-bottom:.75rem}.pwa-install-btn{background:var(--color-primary);color:var(--color-on-dark);border:none;padding:.5rem 1rem;border-radius:6px;font-size:var(--text-base-sm);font-weight:600;cursor:pointer}.pwa-install-btn:hover{opacity:.9}.pwa-ios-guide{margin-top:.75rem;padding:.75rem;background:#ffffff1a;border-radius:8px;font-size:var(--text-base-sm);line-height:1.6}.pwa-ios-guide p{margin:0}@keyframes pwa-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.rlstorage-page,.rlstorage-form-page,.rlstorage-admin-page,.rlstorage-modal{--color-primary: #1a365d;--color-primary-hover: #142a4d;--color-primary-light: #e8edf4;--color-border: #c8d0dc;background-color:#fbf8f5;flex:1 0 auto}.rlstorage-header h1{color:var(--color-primary);padding-bottom:.35rem;border-bottom:2px solid var(--color-primary)}.rlstorage-header-actions{flex-shrink:0}.rlstorage-toolbar .form-input{flex:1;min-width:120px}.rlstorage-toolbar select{max-width:180px}.rl-duplicate-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;border:1px solid var(--color-border);border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 12px #0000001f;max-height:260px;overflow-y:auto}.rl-duplicate-hint{padding:.5rem .75rem;font-size:var(--text-xs);color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.rl-duplicate-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .75rem;border:none;background:none;text-align:left;cursor:pointer;transition:background .12s;font-size:var(--text-base-sm)}.rl-duplicate-item:hover,.rl-duplicate-item-active{background:#f0f3f8}.rl-duplicate-item+.rl-duplicate-item{border-top:1px solid var(--color-border-light, #eee)}.rl-duplicate-photo{width:36px;height:36px;border-radius:6px;object-fit:cover;flex-shrink:0}.rl-duplicate-photo-placeholder{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;background:#f0f3f8;font-size:1.1rem;flex-shrink:0}.rl-duplicate-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.rl-duplicate-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rl-duplicate-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.rl-availability-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.rl-availability-badge.avail-in-storage{background:var(--color-success-bg);color:var(--color-success-text)}.rl-availability-badge.avail-in-use{background:#dbeafe;color:#1e40af}.rl-availability-badge.avail-on-hold{background:#fef9c3;color:#854d0e}.rl-card-brand,.rl-card-store,.rl-card-owner{font-size:var(--text-xs);color:var(--color-text-secondary)}.rl-card-badges{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:.25rem}.rl-card-measures{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:.25rem}.rl-photo-count-badge{position:absolute;bottom:-4px;right:-4px;background:var(--color-primary);color:var(--color-on-dark);font-size:var(--text-2xs);font-weight:700;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;padding:0 4px;box-shadow:0 1px 3px #0000004d}.rl-photo-strip{display:flex;gap:6px;align-items:center;background:#fffffff2;padding:4px 6px;border-radius:8px;box-shadow:0 2px 8px #0003;white-space:nowrap}.rl-strip-thumb{width:80px;height:80px;object-fit:cover;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:border-color .15s}.rl-strip-thumb:hover{border-color:var(--color-primary)}.rl-lightbox-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;cursor:pointer}.rl-lightbox-img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px;cursor:default}.rl-lightbox-close{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--color-on-dark);font-size:var(--text-4xl);cursor:pointer;line-height:1;padding:4px 12px}.photo-count-badge{position:absolute;bottom:-4px;right:-4px;background:var(--color-primary);color:var(--color-on-dark);font-size:var(--text-2xs);font-weight:700;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;padding:0 4px;box-shadow:0 1px 3px #0000004d}.photo-strip-backdrop{position:fixed;inset:0;z-index:9998}.photo-strip{display:flex;gap:6px;align-items:center;background:#fffffff2;padding:4px 6px;border-radius:8px;box-shadow:0 2px 8px #0003;white-space:nowrap}.photo-strip-thumb{width:80px;height:80px;object-fit:cover;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:border-color .15s}.photo-strip-thumb:hover{border-color:var(--color-primary)}.photo-strip-add-btn{width:80px;height:80px;border:2px dashed var(--color-border);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--color-text-secondary);flex-shrink:0;transition:border-color .2s,color .2s}.photo-strip-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.photo-strip-premium-hint{font-size:.7rem;color:var(--color-text-secondary);font-style:italic;padding:4px 8px;max-width:120px;white-space:normal;line-height:1.3;display:flex;align-items:center}.lightbox-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;cursor:pointer}.lightbox-img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px;cursor:default}.lightbox-close{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--color-on-dark);font-size:var(--text-4xl);cursor:pointer;line-height:1;padding:4px 12px}.rlstorage-form-page{max-width:900px}.module-form-modal{max-width:640px;width:95%;max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden;padding:0;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 24px #0000001f}.module-form-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #f0f0f0}.module-form-modal-header h3{margin:0;font-size:1.125rem;color:#1e293b;font-weight:600}.module-form-modal-body{overflow-y:auto;flex:1;padding:1rem 1.5rem 1.5rem}.module-form-modal-body .freeze-form,.module-form-modal-body .workshop-form{margin-top:0}.rlstorage-modal{max-width:640px;width:95%;max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden;padding:0;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 24px #0000001f}.rlstorage-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #f0f0f0}.rlstorage-modal-header h3{margin:0;font-size:1.125rem;color:#1e293b;font-weight:600}.rlstorage-modal-body{overflow-y:auto;flex:1;padding:1rem 1.5rem 1.5rem}.rlstorage-modal-body .freeze-form{margin-top:0}.rl-measure-fields{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.rl-measure-field{display:flex;flex-direction:column;gap:.2rem;flex:1 1 0;min-width:80px}.rl-measure-field .form-label{font-size:var(--text-xs);margin:0;white-space:nowrap;color:var(--color-text-muted)}.rl-measure-field .form-input{width:100%;padding:.3rem .5rem;font-size:var(--text-base-sm)}.rl-measure-fields-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.rl-measure-field-row{display:flex;flex-direction:column;gap:.2rem;flex:1 1 0;min-width:80px}.rl-measure-field-row .form-label{font-size:var(--text-xs);margin:0;white-space:nowrap;color:var(--color-text-muted)}.rl-measure-field-row .form-input{width:100%;padding:.3rem .5rem;font-size:var(--text-base-sm)}.rl-photo-grid{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:.5rem}.rl-photo-item{position:relative;width:100px;height:100px}.rl-photo-item img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--color-border)}.rl-photo-pending{opacity:.8}.rl-photo-pending img{border:2px dashed var(--color-primary)}.rl-photo-item .rl-photo-delete{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.rl-photo-upload-btn{width:100px;height:100px;border:2px dashed var(--color-border);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--color-text-secondary);font-size:var(--text-2xl);transition:border-color .2s}.rl-photo-upload-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.item-photo-badge{display:inline-flex;align-items:center;gap:3px;font-size:.75rem;color:var(--color-text-secondary);margin-left:.5rem}.premium-teaser-hint{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:.5rem 0}.premium-badge{display:inline-flex;align-items:center;gap:.15rem;font-size:.65rem;color:var(--color-text-secondary);background:var(--color-bg-tertiary, #f3f4f6);padding:.1rem .35rem;border-radius:4px;font-weight:500;vertical-align:middle;margin-left:.35rem;letter-spacing:.02em}.ws-measure-badge{font-size:.75rem;padding:.1rem .3rem;min-width:unset;opacity:.5;transition:opacity .15s}.ws-measure-badge:hover,.ws-measure-badge.has-fields{opacity:1}.ws-sub-measure-config{margin-left:1.5rem;margin-bottom:.5rem;border-left:2px solid var(--color-border, #e5e7eb);padding-left:.75rem}.rlstorage-admin-page{max-width:1200px}.rl-admin-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:2px solid var(--color-border)}.rl-admin-tab{padding:.5rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-weight:500;color:var(--color-text-secondary);transition:color .2s,border-color .2s}.rl-admin-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.rl-admin-tab:hover{color:var(--color-primary)}.rl-measure-config{padding:.75rem;background:var(--color-primary-light);border-radius:6px;margin-top:.5rem}.rl-measure-config-row{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:.5rem;flex-wrap:wrap}.rl-measure-config-row .form-input{flex:1;min-width:80px;font-size:var(--text-base-sm);padding:.35rem .5rem}.rl-measure-config-row select.form-input{max-width:100px}.rl-measure-config-actions{display:flex;gap:var(--space-sm);margin-top:.5rem}.rl-measure-lang-tabs{display:flex;gap:.25rem;margin-bottom:.75rem;flex-wrap:wrap}.rl-measure-lang-tab{padding:.2rem .5rem;border-radius:6px;font-size:.8rem;border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;color:var(--color-text-secondary);transition:background .15s,color .15s}.rl-measure-lang-tab.active{background:var(--module-color);color:#fff;border-color:var(--module-color)}.rl-measure-translate-hint{font-size:.8rem;color:var(--color-text-secondary);margin-bottom:.25rem}.rl-cat-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--color-border);gap:var(--space-sm)}.rl-cat-item:last-child{border-bottom:none}.rl-cat-item-left{display:flex;align-items:center;gap:var(--space-sm);min-width:0;flex:1}.rl-cat-item-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rl-cat-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--text-sm);color:var(--color-text-secondary)}.rl-cat-measure-count{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap}.rl-cat-item-right{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}@media(max-width:600px){.rl-cat-item{padding:.4rem .5rem;gap:var(--space-xs)}.rl-cat-item-left{min-width:0;flex:1;overflow:hidden}.rl-cat-item-name{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55vw}.rl-cat-measure-count{display:none}}.csv-import-section{margin:1rem 0;padding:1rem;border:1px dashed var(--color-border);border-radius:8px;background:var(--color-surface)}.csv-import-section h4{margin:0 0 .5rem;font-size:.95rem;display:flex;align-items:center;gap:.375rem}.csv-import-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.csv-import-preview{margin-top:.75rem;padding:.75rem;background:var(--color-background, #f8fafc);border-radius:8px}.csv-import-summary{font-size:.9rem}.csv-import-summary .count-valid{color:var(--color-success, #16a34a);font-weight:600}.csv-import-summary .count-skipped{color:var(--color-warning, #d97706)}.csv-import-summary .count-errors{color:var(--color-danger, #dc2626)}.csv-import-details{margin-top:.5rem;font-size:.85rem}.csv-import-details summary{cursor:pointer;color:var(--color-text-secondary)}.csv-import-done{padding:.5rem 0;color:var(--color-success, #16a34a);font-weight:500}@media(max-width:768px){.csv-import-section{display:none}}@media(max-width:600px){.rlstorage-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.rlstorage-toolbar .search-input-wrapper{grid-column:1 / -1}.rlstorage-toolbar select{max-width:100%}.rl-measure-fields{gap:.375rem}.rl-measure-fields-balanced .rl-measure-field{flex-basis:calc(33.333% - .375rem);min-width:calc(33.333% - .375rem)}.rl-measure-fields-form{gap:.375rem}.rl-measure-config-row{flex-direction:column;align-items:stretch}.rl-admin-tabs{flex-wrap:wrap}}.rl-stock-overview{border:1px solid var(--border-color, #e2e8f0);border-radius:8px;margin:12px 0;overflow:hidden}.rl-stock-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:var(--bg-secondary, #f8fafc);border:none;cursor:pointer;font-size:.9rem;text-align:left}.rl-stock-header:hover{background:var(--bg-hover, #f1f5f9)}.rl-stock-header-title{font-weight:600;white-space:nowrap}.rl-stock-header-summary{flex:1;text-align:right;color:var(--text-secondary, #64748b);font-size:.85rem}.rl-stock-toggle{font-size:.7rem;transition:transform .2s;color:var(--text-secondary, #64748b)}.rl-stock-toggle.expanded{transform:rotate(180deg)}.rl-stock-body{padding:0 14px 14px}.rl-stock-table{width:100%;border-collapse:collapse;font-size:.85rem}.rl-stock-table th{text-align:left;font-weight:600;padding:6px 8px;border-bottom:2px solid var(--border-color, #e2e8f0);color:var(--text-secondary, #64748b);font-size:.8rem}.rl-stock-table td{padding:6px 8px;border-bottom:1px solid var(--border-color, #e2e8f0)}.rl-stock-row-current{background:#1a365d0f}.rl-stock-current-badge{display:inline-block;margin-left:6px;color:var(--module-color, #1a365d);font-size:.6rem;vertical-align:middle}.rl-stock-total-row{font-weight:600}.rl-stock-total-row td{border-bottom:none;padding-top:8px}.rl-stock-divider{height:1px;background:var(--border-color, #e2e8f0);margin:12px 0}.rl-stock-requests-section{font-size:.85rem}.rl-stock-requests-title{font-weight:600;margin-bottom:8px}.rl-stock-request-row{display:flex;align-items:center;gap:8px;padding:4px 0}.rl-stock-request-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rl-stock-request-qty{font-weight:600;white-space:nowrap}.rl-stock-request-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;white-space:nowrap}.rl-stock-request-badge.status-requested{background:#fef3c7;color:#92400e}.rl-stock-request-badge.status-approved{background:#d1fae5;color:#065f46}.rl-stock-request-badge.status-shipped{background:#dbeafe;color:#1e40af}.rl-stock-request-source{color:var(--text-secondary, #64748b);font-size:.8rem;white-space:nowrap}.rl-stock-effective{margin-top:8px;font-weight:600;color:var(--text-secondary, #64748b)}@media(max-width:600px){.rl-stock-col-position,.rl-stock-request-source{display:none}.rl-stock-header{padding:8px 10px;font-size:.85rem}}.chat-panel-overlay{position:fixed;inset:0;background:#0000004d;z-index:199}.chat-panel{position:fixed;top:85px;right:16px;bottom:24px;width:380px;max-width:calc(100vw - 32px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 8px 32px #00000026,0 2px 8px #00000014;z-index:200;display:flex;flex-direction:column;animation:chatSlideIn .25s ease-out;overflow:hidden}@keyframes chatSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.chat-panel-title{font-weight:600;font-size:var(--text-md);color:var(--color-text)}.chat-panel-close{background:none;border:none;font-size:var(--text-2xl);line-height:1;cursor:pointer;color:var(--color-text-secondary);padding:.2rem .4rem;border-radius:4px;transition:background .15s}.chat-panel-close:hover{background:var(--color-primary-light)}.chat-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:var(--space-xs);-webkit-overflow-scrolling:touch}.chat-empty{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:2rem 1rem}.chat-bubble-wrap{display:flex;flex-direction:column;align-items:flex-start;max-width:85%}.chat-bubble-wrap-own{align-items:flex-end;align-self:flex-end}.chat-bubble-name{font-size:var(--text-xs);font-weight:600;color:var(--color-primary);margin-bottom:.1rem;margin-left:.5rem}.chat-bubble{padding:.5rem .75rem;border-radius:12px;max-width:100%;word-wrap:break-word;cursor:default;position:relative}.chat-bubble-other{background:#f1f5f9;color:var(--color-text);border-bottom-left-radius:4px}.chat-bubble-own{background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.chat-bubble-deletable{cursor:pointer;-webkit-user-select:none;user-select:none}.chat-bubble-deletable:hover{opacity:.9}@media(pointer:coarse){.chat-bubble-deletable:active{transform:scale(.97);opacity:.85}}.chat-bubble-text{font-size:var(--text-base);line-height:1.4;white-space:pre-wrap}.chat-bubble-time{font-size:.7rem;opacity:.7;margin-top:.2rem;text-align:right}.chat-input-area{display:flex;align-items:flex-end;gap:var(--space-sm);padding:.75rem;border-top:1px solid var(--color-border);flex-shrink:0;background:var(--color-surface)}.chat-input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:16px;font-size:var(--text-base);font-family:inherit;outline:none;transition:border-color .15s;resize:none;min-height:38px;max-height:100px;line-height:1.4}.chat-input:focus{border-color:var(--color-primary)}.chat-send-btn{background:var(--color-primary);color:#fff;border:none;border-radius:50%;width:38px;height:38px;font-size:var(--text-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.chat-send-btn:hover{background:var(--color-primary-hover)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.portal-chat-badge{position:absolute;top:.5rem;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:var(--space-xs);background:#fef2f2;color:var(--color-danger);font-size:var(--text-xs);font-weight:600;font-family:inherit;padding:.15rem .5rem;border-radius:10px;border:1px solid #fecaca;cursor:pointer;z-index:2;transition:background .15s,border-color .15s}.portal-chat-badge:hover{background:var(--color-danger-bg);border-color:#f87171}.chat-btn{position:relative}.chat-btn--teaser{opacity:.5}.chat-btn-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;background:var(--color-danger);color:#fff;border-radius:8px;font-size:var(--text-2xs);font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}@media(max-width:600px){.chat-panel{top:60px;right:8px;bottom:12px;width:calc(100vw - 16px);max-width:none;border-radius:12px}}.navbar-feedback-btn{background:none;border:none;cursor:pointer;padding:.2rem;margin-right:.5rem;color:var(--text-primary);line-height:1;display:flex;align-items:center;position:relative}.navbar-feedback-btn:hover{color:var(--primary)}.navbar-feedback-badge{position:absolute;top:-4px;right:-6px;background:#dc2626;color:#fff;font-size:.65rem;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.transfer-dialog{max-width:400px;width:90vw}.transfer-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-md)}.transfer-target-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.transfer-target-item{padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);text-align:left;cursor:pointer;font-size:var(--text-base-sm);font-weight:500;transition:border-color .15s,background .15s}.transfer-target-item:hover{border-color:var(--color-primary)}.transfer-target-item.active{border-color:var(--color-primary);background:#196d5f0f;font-weight:600}.transfer-location-wrap{margin-bottom:var(--space-md)}.transfer-location-hint{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:4px}.feedback-dialog{max-width:480px;width:90vw}.feedback-title{margin:0 0 1rem;font-size:var(--text-lg)}.feedback-textarea{width:100%;min-height:100px;resize:vertical;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--text-base-sm);margin-bottom:.75rem}.feedback-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #196d5f26}.feedback-success-wrap{text-align:center;padding:1.5rem 1rem .5rem}.feedback-success-logo{width:120px;height:auto;margin-bottom:1.25rem;opacity:.9}.feedback-success-check{width:48px;height:48px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.feedback-success{color:var(--color-text);font-weight:600;font-size:1.05rem;margin-bottom:.5rem}.feedback-success-sub{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:2.5rem}.feedback-error{color:var(--danger);font-size:var(--text-sm);margin-bottom:.5rem}.feedback-admin-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.feedback-admin-header h1{margin:0}.feedback-admin-count{background:#fef3c7;color:#92400e;padding:.2rem .6rem;border-radius:999px;font-size:var(--text-sm);font-weight:600}.feedback-admin-filter{display:flex;gap:.25rem;margin-bottom:1rem}.feedback-admin-toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:1.5rem}.feedback-admin-search{flex:1;padding:.4rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-sm)}.feedback-admin-search:focus{outline:none;border-color:var(--color-primary)}.feedback-admin-category-filter{padding:.4rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-sm);background:var(--color-surface)}.feedback-admin-result-count{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.feedback-admin-toggle{font-size:.7rem;color:var(--color-text-secondary);margin-right:.4rem}.feedback-admin-preview{color:var(--color-text-secondary);font-weight:400;font-size:var(--text-sm)}.feedback-admin-list{display:flex;flex-direction:column;gap:.75rem}.feedback-admin-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;border-left:4px solid #fbbf24}.feedback-admin-card.status-done{border-left-color:#86efac;opacity:.75}.feedback-admin-card-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.feedback-admin-card-header:last-child{margin-bottom:0}.feedback-admin-meta{flex:1;min-width:0;font-size:var(--text-sm);color:var(--text-secondary)}.feedback-admin-email{color:var(--text-secondary)}.feedback-admin-separator{margin:0 .3rem;opacity:.5}.feedback-status-badge{flex-shrink:0;padding:.15rem .5rem;border-radius:999px;font-size:var(--text-xs);font-weight:600}.feedback-status-badge.badge-new{background:#fef3c7;color:#92400e}.feedback-status-badge.badge-done{background:#dcfce7;color:#166534}.feedback-admin-message{white-space:pre-wrap;margin:.5rem 0 .75rem;line-height:1.5}.feedback-admin-resolved{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:.5rem;font-style:italic}.feedback-admin-actions{display:flex;gap:.5rem;align-items:center}.feedback-admin-note-wrap{display:flex;gap:.25rem;align-items:center;flex:1}.feedback-admin-note{flex:1;padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm)}.btn-danger-text{color:var(--danger)!important}.feedback-admin-replies{margin:.5rem 0 .75rem;padding-left:.75rem;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.feedback-reply{font-size:var(--text-sm)}.feedback-reply-meta{color:var(--text-secondary);margin-bottom:.15rem}.feedback-reply-message{white-space:pre-wrap}.feedback-reply-admin{color:var(--text-secondary);font-style:italic}.feedback-reply-inline{display:flex;gap:.25rem;margin-top:.4rem}.feedback-reply-input{flex:1;padding:.25rem .4rem;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm);min-width:0}.feedback-reply-input:focus{outline:none;border-color:var(--primary)}.feedback-reply-sent{font-size:var(--text-sm);color:#166534;margin-top:.3rem}.feedback-admin-badges{display:flex;align-items:center;gap:.4rem;flex-shrink:0;white-space:nowrap}.feedback-delete-inline{padding:.1rem .3rem;font-size:.8rem;opacity:.4;transition:opacity .15s}.feedback-admin-card:hover .feedback-delete-inline{opacity:1}.feedback-ai-draft{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius);padding:.75rem;margin:.5rem 0}.feedback-ai-draft-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:var(--text-sm)}.feedback-ai-label{font-weight:600;color:#2563eb}.feedback-ai-hint{color:var(--color-text-secondary);font-style:italic}.feedback-ai-category{padding:.1rem .5rem;border-radius:999px;font-size:var(--text-xs);font-weight:600;background:#e0e7ff;color:#3730a3}.feedback-ai-confidence{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.feedback-ai-confidence.high{background:#22c55e}.feedback-ai-confidence.medium{background:#eab308}.feedback-ai-confidence.low{background:#ef4444}.feedback-ai-flag{padding:.1rem .5rem;border-radius:999px;font-size:var(--text-xs);font-weight:600;background:#fef3c7;color:#92400e}.feedback-ai-draft-text{white-space:pre-wrap;line-height:1.5}.feedback-ai-loading,.feedback-ai-error{font-size:var(--text-sm);color:var(--color-text-secondary);font-style:italic;margin:.5rem 0}.feedback-ai-error{color:#dc2626}.feedback-reply-section{margin:.5rem 0}.feedback-reply-textarea{width:100%;min-height:120px;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:.9rem;line-height:1.65;letter-spacing:.01em;color:var(--color-text);resize:vertical}.feedback-reply-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #0e749026}.feedback-reply-actions{display:flex;gap:.5rem;margin-top:.5rem}.notification-bell-wrap{position:relative;margin-right:.5rem;display:flex;align-items:center}.notification-bell{background:none;border:none;font-size:var(--text-xl);cursor:pointer;position:relative;padding:.2rem;line-height:1;display:flex;align-items:center}.notification-bell-badge{position:absolute;top:-4px;right:-6px;min-width:16px;height:16px;background:var(--color-danger);color:#fff;border-radius:8px;font-size:var(--text-2xs);font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.notification-dropdown-overlay{position:fixed;inset:0;z-index:999}.notification-dropdown{position:absolute;top:100%;right:-.5rem;margin-top:.5rem;width:320px;max-height:400px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 8px 24px #00000026;z-index:1000}.notification-dropdown-title{padding:.75rem 1rem .5rem;font-weight:600;font-size:var(--text-base-lg);color:var(--color-text);border-bottom:1px solid var(--color-border)}.notification-card{padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.notification-card:last-child{border-bottom:none}.notification-card-read{opacity:.55}.notification-card-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:.35rem}.notification-card-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0}.notification-card-emoji{font-size:1.2rem;flex-shrink:0}.notification-card-info{display:flex;flex-direction:column;min-width:0}.notification-card-module{font-weight:600;font-size:var(--text-base-sm);color:var(--color-text)}.notification-card-instance{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-card-meta{display:flex;flex-direction:column;font-size:.78rem;color:var(--color-text-secondary);margin-bottom:.5rem}.notification-card-date{font-size:.7rem;color:#9ca3af;margin-top:2px}.notification-card-actions{display:flex;gap:var(--space-sm)}.notification-card-actions .btn{flex:1}.notification-section-title{padding:.75rem 1rem .5rem;font-weight:600;font-size:.85rem;color:var(--color-text-secondary);border-top:1px solid var(--color-border)}.notification-section-title:first-child{border-top:none}.notification-status-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:.7rem;font-weight:600;white-space:nowrap;margin-left:auto}.notification-status-badge.status-requested{background:#fef9c3;color:#854d0e}.notification-status-badge.status-approved{background:#dcfce7;color:#166534}.notification-status-badge.status-shipped{background:#dbeafe;color:#1e40af}.notification-status-badge.status-rejected{background:#fef2f2;color:#dc2626}.request-dialog{max-width:480px}.request-dialog-item-info{background:var(--color-bg-secondary, #f3f4f6);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.request-dialog-item-info h4{margin:0;font-size:.95rem}.request-dialog-available{font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap}.rl-request-btn{border:1px solid #1a365d!important;color:#1a365d!important;background:transparent!important}.rl-request-btn:hover{background:#ebf0f7!important}.item-quantity-reserved{color:#b45309;font-weight:600}.notification-tabs{display:flex;border-bottom:2px solid #e5e7eb;margin-bottom:.5rem}.notification-tab{flex:1;padding:.5rem .25rem;background:none;border:none;cursor:pointer;font-size:.75rem;font-weight:500;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:flex;align-items:center;justify-content:center;gap:.35rem}.notification-tab:hover{color:#374151}.notification-tab.active{color:var(--primary, #2563eb);border-bottom-color:var(--primary, #2563eb);font-weight:600}.notification-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:.65rem;font-weight:700;line-height:1}.notification-feed-item{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .75rem;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .15s}.notification-feed-item:hover{background:#f9fafb}.notification-feed-item:last-child{border-bottom:none}.notification-feed-item.unread{background:#eff6ff}.notification-feed-item.unread:hover{background:#e0ecff}.notification-feed-icon{font-size:1.1rem;flex-shrink:0;margin-top:2px}.notification-feed-content{flex:1;min-width:0}.notification-feed-message{font-size:.8rem;color:#374151;line-height:1.4;word-break:break-word}.unread .notification-feed-message{font-weight:600}.notification-feed-time{font-size:.7rem;color:#9ca3af;margin-top:2px}.notification-feed-mark-all{display:block;width:100%;padding:.5rem;background:none;border:none;border-top:1px solid #e5e7eb;cursor:pointer;font-size:.75rem;color:var(--primary, #2563eb);font-weight:500;text-align:center}.notification-feed-mark-all:hover{background:#f9fafb}.notification-settings-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.notification-setting-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0}.notification-setting-label{font-size:.9rem;font-weight:500}.notification-setting-desc{font-size:.8rem;color:#6b7280}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#d1d5db;border-radius:24px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s}.toggle-switch input:checked+.toggle-slider{background:var(--primary, #2563eb)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}@media(max-width:600px){.notification-dropdown{right:-2rem;width:calc(100vw - 2rem);max-width:340px}}.reminder-page,.reminder-form-page,.reminder-admin-page{--color-primary: #7c3aed;--color-primary-hover: #6d28d9;--color-primary-light: #f5f3ff;--color-border: #e5e7eb;background-color:#fbf8f5;flex:1 0 auto}.reminder-page .item-card{border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000000f;border-left:3px solid #e5e7eb;transition:box-shadow .15s ease,background-color .15s ease}.reminder-page .item-card:hover{box-shadow:0 2px 8px #00000017;background-color:#f8f7ff}.reminder-page .item-card-content h3{font-size:1rem;color:#1e293b}.reminder-overdue{color:var(--color-danger)}.reminder-today{font-weight:500;color:var(--color-primary)}.reminder-item-time{font-size:var(--text-base-sm);color:var(--color-text-secondary)}.reminder-item-location{font-size:var(--text-sm);color:#94a3b8}.reminder-item-note{font-size:var(--text-sm);color:#94a3b8;font-style:italic;margin-top:.125rem}.reminder-page .item-card-meta{margin-bottom:.125rem;gap:.25rem;padding-top:.25rem;border-top:1px solid #f0f0f0}.reminder-datetime-row{display:flex;gap:.75rem;align-items:flex-end;margin-bottom:.75rem}.reminder-datetime-row>.form-group{min-width:0;margin-bottom:0}.reminder-datetime-row>.form-group:first-child{flex:1.2}.reminder-datetime-row>.form-group:not(:first-child):not(.reminder-allday-toggle){flex:1}.reminder-allday-toggle{display:flex;align-items:center;gap:.5rem;flex-shrink:0;padding-bottom:.5rem}.reminder-time-input{display:flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:0 .25rem;width:100%;transition:border-color .15s ease}.reminder-time-input:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #7c3aed14}.reminder-time-input input{border:none;outline:none;background:transparent;text-align:center;width:2.5em;padding:.5rem 0;font-size:var(--text-base);font-family:inherit;color:var(--color-text)}.reminder-time-input input::placeholder{color:silver}.reminder-time-input .time-separator{color:var(--color-text-secondary);font-weight:500;-webkit-user-select:none;user-select:none}.reminder-time-input.readonly{background:var(--color-surface-secondary);cursor:default}.reminder-time-input.readonly input{cursor:default}.reminder-time-input.disabled{opacity:.5;pointer-events:none}.reminder-allday-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary)}.reminder-allday-toggle label{font-size:var(--text-base-sm);cursor:pointer;white-space:nowrap}.reminder-today-banner{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background:#fff;border:1px solid #e5e7eb;border-left:3px solid var(--color-primary);border-radius:8px;font-size:var(--text-base-sm);color:#374151;font-weight:500;margin-bottom:.75rem;flex-wrap:wrap;box-shadow:0 1px 3px #0000000f}.reminder-today-banner .banner-next{color:var(--color-text-secondary);font-weight:400}.reminder-person-badges{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}.reminder-person-badge{display:inline-flex;align-items:center;padding:.0625rem .375rem;border-radius:999px;font-size:.65rem;font-weight:500;line-height:1.3;border:1px solid}.reminder-person-select{display:flex;flex-wrap:wrap;gap:.375rem}.reminder-person-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .625rem;border-radius:16px;font-size:var(--text-base-sm);cursor:pointer;border:1.5px solid #e5e7eb;background:#fff;color:#94a3b8;transition:all .15s;-webkit-user-select:none;user-select:none}.reminder-person-chip:hover{border-color:#94a3b8;background:#fafafa}.reminder-person-chip.selected{font-weight:600;background:#fafafa}.reminder-color-picker{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center}.reminder-color-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s;flex-shrink:0}.reminder-color-swatch:hover{transform:scale(1.15)}.reminder-color-swatch.selected{border-color:var(--color-text);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--color-text)}.reminder-color-swatch.small{width:18px;height:18px}.reminder-color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;display:inline-block}.reminder-person-admin-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.reminder-person-admin-item .person-name{flex:1;font-weight:500}.reminder-person-admin-item.inactive{opacity:.6;background:var(--color-bg-muted, #f9f9f9)}.reminder-admin-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:2px solid var(--color-border)}.reminder-admin-tab{padding:.5rem 1.25rem;cursor:pointer;font-size:var(--text-base-sm);font-weight:500;color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.reminder-admin-tab:hover{color:var(--color-primary)}.reminder-admin-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.reminder-person-add-row{display:flex;gap:.5rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:1rem}.reminder-person-add-row input{flex:1;min-width:140px}.reminder-persons-section-title{font-size:var(--text-base-sm);font-weight:600;color:var(--color-text-secondary);margin:.75rem 0 .375rem}.reminder-persons-list{display:flex;flex-direction:column;gap:.375rem}.reminder-filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.reminder-filter-bar select{font-size:var(--text-base-sm);padding:.375rem .5rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#fff;min-width:120px}@media(max-width:640px){.reminder-color-swatch{width:28px;height:28px}.reminder-color-swatch.small{width:22px;height:22px}.reminder-filter-bar{gap:.375rem}.reminder-filter-bar select{min-width:0;flex:1}}.reminder-view-tabs{display:flex;gap:0;margin-bottom:.75rem;border-bottom:2px solid var(--color-border)}.reminder-view-tab{padding:.5rem 1.25rem;cursor:pointer;font-size:var(--text-base-sm);font-weight:500;color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.reminder-view-tab:hover{color:var(--color-primary)}.reminder-view-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.reminder-view-tab svg,.reminder-day-detail-header svg{vertical-align:-3px;margin-right:.375rem}.reminder-recurrence-badge svg,.reminder-private-badge svg,.reminder-advance-badge svg{vertical-align:-2px}.btn-ics-export svg{vertical-align:-3px}.reminder-today-banner svg{vertical-align:-3px;margin-right:.25rem;color:var(--color-primary)}.reminder-item-location svg,.people-location svg{vertical-align:-2px;margin-right:.125rem}.reminder-calendar{margin-top:.25rem}.reminder-calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.reminder-calendar-nav h2{font-size:1.1rem;margin:0;font-weight:600;text-transform:capitalize;color:#1e293b;letter-spacing:-.01em}.reminder-calendar-nav-buttons{display:flex;gap:.375rem}.reminder-calendar-nav-buttons button{padding:.375rem .625rem;border-radius:6px;border:1px solid var(--color-border);background:#fff;cursor:pointer;font-size:var(--text-base-sm);color:var(--color-text);transition:background .15s,border-color .15s}.reminder-calendar-nav-buttons button:hover{background:var(--color-primary-light);border-color:#d4c8e8}.reminder-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#f0f0f0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.reminder-weekday-header{text-align:center;font-weight:600;font-size:.75rem;padding:.5rem .375rem;background:#fafafa;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.reminder-day-cell{min-height:80px;min-width:0;padding:.25rem;background:#fff;cursor:pointer;display:flex;flex-direction:column;transition:background .1s}.reminder-day-cell:hover{background:#f8f7ff}.reminder-day-cell.other-month{opacity:.35;background:#fafafa}.reminder-day-cell.selected{background:#f5f3ff;box-shadow:inset 0 0 0 2px var(--color-primary)}.reminder-day-number{text-align:right;font-size:.75rem;line-height:1;color:var(--color-text-secondary)}.reminder-day-number.today{background:var(--color-primary);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto;font-weight:600;font-size:.7rem}.reminder-day-number.overdue{color:var(--color-danger);font-weight:600}.reminder-day-events{display:flex;flex-direction:column;gap:1px;margin-top:.125rem;flex:1;min-height:0;min-width:0;overflow:hidden}.reminder-event-bar{font-size:.65rem;line-height:1.2;padding:1px 4px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:15px;font-weight:500}.reminder-event-bar.approaching{box-shadow:0 0 0 1.5px var(--color-warning-text)}.reminder-event-bar .bar-time{font-weight:600;margin-right:2px}.reminder-day-overflow{font-size:.6rem;color:#94a3b8;line-height:1;padding-left:2px}.reminder-day-dots-mobile{display:flex;flex-wrap:wrap;gap:2px;margin-top:auto;padding-top:.125rem;align-items:center}.reminder-day-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.reminder-day-more{font-size:.6rem;color:var(--color-text-secondary);line-height:1}.reminder-day-detail{border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:.75rem;margin-top:.5rem;box-shadow:0 1px 3px #0000000f}.reminder-day-detail-header{font-weight:600;padding-bottom:.5rem;border-bottom:1px solid #f0f0f0;margin-bottom:.5rem;font-size:var(--text-base-sm);text-transform:capitalize;color:#374151;display:flex;align-items:center;gap:.375rem}.reminder-day-detail-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;cursor:pointer;border-radius:var(--radius-md);transition:background .1s;font-size:var(--text-base-sm);border-left:3px solid transparent}.reminder-day-detail-item:hover{background:#f8f7ff}.reminder-day-detail-item .detail-title{flex:1;font-weight:500}.reminder-day-detail-item .detail-time{color:var(--color-text-secondary);font-size:.8rem;white-space:nowrap}.reminder-day-detail-item .detail-persons{display:flex;gap:.25rem;flex-wrap:wrap}.reminder-day-detail-empty{color:var(--color-text-secondary);font-style:italic;font-size:var(--text-base-sm);padding:.25rem 0}.reminder-day-detail-add{margin-top:.5rem;border-top:1px solid #f0f0f0;padding-top:.5rem}.calendar-cross-module-item{border:1px dashed!important;border-left-width:3px!important;border-radius:var(--radius-md)}.calendar-cross-module-item:hover{filter:brightness(.96)}.cross-module-item-icon{font-size:1.25rem;flex-shrink:0}.cross-module-badge{display:inline-block;font-size:.6rem;font-weight:700;text-transform:uppercase;padding:.1rem .4rem;border-radius:9999px;margin-left:.375rem;vertical-align:middle;letter-spacing:.03em;border:1px solid currentColor}.cross-module-days-inline{font-weight:500;font-size:.75rem!important}.cross-module-days-inline.overdue{color:var(--color-danger)!important}.cross-module-days-inline.today{color:var(--color-warning-text)!important}.reminder-event-bar.cross-module{font-size:.7rem;border:1px dashed}.reminder-event-bar .bar-icon{margin-right:.125rem}.reminder-day-dot.cross-module-dot{border-radius:1px;width:7px;height:7px}.cross-module-popup{max-width:360px;width:90vw}.cross-module-popup-header{display:flex;align-items:center;gap:.5rem;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb;margin-bottom:.75rem}.cross-module-popup-icon{font-size:1.25rem}.cross-module-popup-module{font-weight:600;flex:1;display:flex;flex-direction:column;line-height:1.3}.cross-module-popup-instance{font-size:.8rem;font-weight:400;opacity:.7}.cross-module-popup-body{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.cross-module-popup-title{font-size:1.1rem;font-weight:600}.cross-module-popup-date{display:flex;align-items:center;gap:.375rem;color:var(--color-text-secondary);font-size:.9rem}.cross-module-days{font-size:.8rem;font-weight:500}.cross-module-days.overdue{color:var(--color-danger)}.cross-module-days.today{color:var(--color-warning-text)}.cross-module-popup-location{display:flex;align-items:center;gap:.375rem;color:var(--color-text-secondary);font-size:.9rem}.cross-module-popup-actions{display:flex;justify-content:flex-end;gap:.5rem}.cross-module-popup-actions .btn{display:flex;align-items:center;gap:.25rem}.reminder-cross-module-toggles{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.cross-module-group{display:flex;flex-direction:column;gap:.4rem}.cross-module-group-header{display:flex;align-items:center;gap:.4rem;font-size:var(--text-base-sm);padding-bottom:.25rem;border-bottom:1px solid var(--color-border)}.reminder-cross-module-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--text-base-sm);padding-left:1.5rem}.reminder-cross-module-toggle input[type=checkbox]{width:1rem;height:1rem}.cross-module-icon{font-size:1.1rem}.cross-module-no-instances{font-size:.85rem;color:var(--color-text-secondary);font-style:italic}@media(max-width:640px){.reminder-day-cell{min-height:52px;font-size:.8rem}.reminder-day-dot{width:7px;height:7px}.reminder-day-number.today{width:18px;height:18px;font-size:.65rem}.reminder-calendar-nav h2{font-size:1rem}.reminder-view-tab{padding:.5rem .75rem}}.reminder-weekday-select{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}.reminder-custom-interval{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.reminder-custom-interval input[type=number]{width:4rem;text-align:center}.reminder-recurrence-end-row{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.reminder-recurrence-end-label{font-size:var(--text-base-sm);font-weight:500;color:var(--color-text);white-space:nowrap}.reminder-recurrence-end-row select{width:auto;min-width:0;flex-shrink:0}.reminder-recurrence-end-row input[type=date]{width:auto;flex:1;min-width:140px}.reminder-recurrence-badge{font-size:.75rem;color:#888;margin-left:.25rem}.series-choice-options{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem}.series-choice-options button{width:100%}.reminder-approaching{color:var(--color-warning-text);font-weight:400}.reminder-advance-badge{font-size:.875rem;opacity:.9}.btn-ics-export{background:none;border:none;cursor:pointer;padding:4px 6px;font-size:var(--text-sm);color:#94a3b8;transition:color .2s;border-radius:4px}.btn-ics-export:hover{color:#374151;background:#f0f0f0}.btn-ics-export.btn-premium-locked{opacity:.4;cursor:default}.calendar-feed-dialog{max-width:520px}.calendar-feed-desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:1rem}.calendar-feed-url-box{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.calendar-feed-url{flex:1;font-size:var(--text-xs);font-family:monospace;padding:.4rem .5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);overflow:hidden;text-overflow:ellipsis}.calendar-feed-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.reminder-page .item-card-actions .btn-danger{background:transparent;color:#94a3b8;border:1px solid #e5e7eb;font-size:var(--text-xs)}.reminder-page .item-card-actions .btn-danger:hover{color:var(--color-danger);border-color:var(--color-danger);background:#fef2f2}.reminder-advance-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.reminder-advance-row>.form-label{margin-bottom:0;white-space:nowrap}.reminder-advance-select{display:flex;flex-wrap:wrap;gap:.375rem}.reminder-admin-settings{padding:1rem 0}.reminder-admin-settings h3{margin-top:0;margin-bottom:.5rem}.reminder-admin-settings-hint{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:1rem}.reminder-admin-settings .btn-primary{margin-top:1rem}.expiry-notification-toggle{display:flex;align-items:center;gap:.5rem;font-size:1rem;cursor:pointer}.expiry-notification-toggle input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer}.reminder-day-dot.approaching{box-shadow:0 0 0 2px var(--color-warning-text)}.reminder-today-banner .banner-approaching{color:var(--color-warning-text)}.reminder-visibility-select{display:flex;gap:.375rem;margin-top:.5rem}.reminder-private-badge{font-size:.75rem;margin-left:.25rem;opacity:.7}.reminder-birthday-age{color:var(--color-text-secondary);font-weight:400;font-size:.85em;margin-left:.25rem}.reminder-people-view{margin-top:.5rem}.reminder-people-filter{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.75rem}.reminder-people-filter .people-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.reminder-my-color-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.reminder-my-color-toggle{display:inline-flex;align-items:center;gap:.375rem;background:none;border:1px solid var(--color-border);border-radius:6px;padding:.25rem .625rem;font-size:.8125rem;cursor:pointer;color:var(--color-text)}.reminder-my-color-toggle:hover{border-color:var(--color-primary)}.reminder-my-color-row .reminder-color-picker{display:flex;gap:.25rem;flex-wrap:wrap}.reminder-people-days{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto 1fr;column-gap:1rem}.reminder-people-day-column{display:grid;grid-template-rows:subgrid;grid-row:span 2;min-width:0}.reminder-people-day-column+.reminder-people-day-column{border-left:1px solid var(--color-border);padding-left:1rem}.reminder-people-day-header{font-weight:600;font-size:var(--text-base-sm);color:var(--color-text);padding-bottom:.5rem;margin-bottom:.5rem;border-bottom:2px solid var(--color-primary)}.reminder-people-day-empty{color:var(--color-text-secondary);font-size:var(--text-base-sm);padding:.75rem 0}.reminder-people-item{margin-bottom:.625rem;padding:.375rem .5rem;cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s}.reminder-people-item:hover{background-color:var(--color-bg-secondary)}.reminder-people-item-row{display:flex;align-items:baseline;gap:.5rem}.reminder-people-item-row .people-time{font-weight:500;white-space:nowrap;min-width:4.5rem;color:var(--color-text-secondary)}.reminder-people-item-row .people-title{flex:1}.reminder-people-item-row .people-location{color:var(--color-text-secondary);font-size:.875rem;white-space:nowrap}.reminder-people-item-persons{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.25rem;padding-left:4.5rem}.reminder-people-item-person{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;color:var(--color-text-secondary)}.reminder-people-item-person .people-color-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}@media(max-width:960px)and (min-width:641px){.reminder-people-item-row{flex-direction:column;align-items:flex-start;gap:.125rem;font-size:.8rem}.reminder-people-item-row .people-time{min-width:0;font-size:.75rem}.reminder-people-item-row .people-title{flex:none}.reminder-people-item-row .people-location{white-space:normal;font-size:.75rem}.reminder-people-item-persons{padding-left:0}.reminder-people-day-header{font-size:.8rem}}@media(max-width:640px){.reminder-people-days{grid-template-columns:1fr;grid-template-rows:none}.reminder-people-day-column{display:block;grid-row:auto}.reminder-people-day-column+.reminder-people-day-column{margin-top:.5rem;border-left:none;padding-left:0}}.reminder-new-modal{max-width:560px;width:95%;max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden;padding:0;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 24px #0000001f}.reminder-new-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #f0f0f0}.reminder-new-modal-header h3{margin:0;font-size:1.125rem;color:#1e293b;font-weight:600}.reminder-new-modal-body{overflow-y:auto;flex:1;padding:1rem 1.5rem 1.5rem}.reminder-new-modal-body .freeze-form{margin-top:0}.reminder-form-page .form-input,.reminder-new-modal .form-input,.reminder-form-page .reminder-time-input,.reminder-new-modal .reminder-time-input{border-radius:6px;border-color:#e5e7eb}.reminder-form-page .form-input:focus,.reminder-new-modal .form-input:focus,.reminder-form-page .reminder-time-input:focus-within,.reminder-new-modal .reminder-time-input:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #7c3aed14}.reminder-page .confirm-dialog{border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 24px #0000001f}.search-panel-overlay{position:fixed;inset:0;z-index:49;opacity:0;pointer-events:none;transition:opacity .3s}.search-panel-overlay.visible{opacity:1;pointer-events:auto}.search-panel{position:fixed;top:69px;right:0;bottom:0;width:40%;min-width:360px;max-width:500px;background:#fff;border-left:1px solid #e5e7eb;box-shadow:-4px 0 24px #00000014;z-index:50;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.search-panel.open{transform:translate(0)}.search-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb}.search-panel-header h3{margin:0;font-size:1rem;font-weight:600;color:#1e293b}.search-panel-close{background:none;border:none;cursor:pointer;color:#94a3b8;padding:.25rem;border-radius:4px;display:flex;align-items:center}.search-panel-close:hover{background:#f5f3ff;color:var(--color-primary)}.search-panel-filters{padding:.75rem 1rem;border-bottom:1px solid #f0f0f0;display:flex;flex-direction:column;gap:.5rem}.search-panel-filter-row{display:flex;gap:.5rem;flex-wrap:wrap}.search-panel-filter-row select{flex:1;min-width:0;font-size:var(--text-base-sm);padding:.375rem .5rem;border-radius:6px;border:1px solid #e5e7eb}.search-panel-active-filters{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-primary)}.search-panel-clear-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.75rem;text-decoration:underline}.search-panel-count{padding:.375rem 1rem;font-size:.75rem;color:var(--color-text-secondary);border-bottom:1px solid #f0f0f0}.search-panel-results{flex:1;overflow-y:auto;padding:.5rem}.search-panel-result-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;border-radius:8px;cursor:pointer;border-left:3px solid transparent;margin-bottom:2px;transition:background .1s}.search-panel-result-item:hover{background:#f8f7ff}.search-panel-result-item .result-icon{flex-shrink:0;margin-top:2px}.search-panel-result-item .result-content{flex:1;min-width:0}.search-panel-result-item .result-title{font-weight:500;font-size:var(--text-base-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-panel-result-item .result-date{font-size:.75rem;color:#94a3b8}.search-panel-result-item .result-persons{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:2px}.search-panel-result-item .result-persons .reminder-person-badge{font-size:.65rem;padding:0 .375rem}.search-panel-result-item .result-actions{flex-shrink:0;display:flex;gap:.25rem;align-items:center}.result-delete-btn{background:none;border:none;cursor:pointer;color:#94a3b8;padding:.25rem;border-radius:4px;display:flex;align-items:center}.result-delete-btn:hover{color:var(--color-danger);background:#fef2f2}.search-panel-empty{text-align:center;color:#94a3b8;padding:2rem 1rem}.reminder-search-toggle{position:relative;padding:.375rem .625rem;border-radius:6px;border:1px solid var(--color-border);background:#fff;cursor:pointer;color:var(--color-text);display:flex;align-items:center;transition:background .15s,border-color .15s,color .15s}.reminder-search-toggle:hover{background:var(--color-primary-light);border-color:#d4c8e8}.reminder-search-toggle.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.reminder-search-toggle .filter-indicator{position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--color-primary);border:1.5px solid #fff}.reminder-search-toggle.active .filter-indicator{background:#fff;border-color:var(--color-primary)}@media(max-width:640px){.search-panel-overlay{background:#00000040}.search-panel{inset:auto 0 0;width:100%;min-width:0;max-width:none;height:70vh;border-left:none;border-top:1px solid #e5e7eb;border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #0000001f;transform:translateY(100%)}.search-panel.open{transform:translateY(0)}.search-panel-header{padding-top:1.25rem;position:relative}.search-panel-header:before{content:"";position:absolute;top:.5rem;left:50%;transform:translate(-50%);width:32px;height:4px;border-radius:2px;background:#d1d5db}.search-panel-filter-row{flex-direction:column}}.article-audit-dialog{min-width:380px;max-width:560px;width:95vw;max-height:80vh;display:flex;flex-direction:column;padding:0}.article-audit-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.article-audit-header h3{margin:0;font-size:var(--text-lg);white-space:nowrap}.article-audit-article-name{flex:1;color:var(--color-text-secondary);font-size:var(--text-base-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-audit-close{margin-left:auto;flex-shrink:0}.article-audit-timeline{overflow-y:auto;flex:1;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.article-audit-loading,.article-audit-empty{text-align:center;color:var(--color-text-secondary);padding:2rem 0}.article-audit-entry{border-left:3px solid #1a365d;padding:.5rem .75rem;border-radius:0 6px 6px 0;background:var(--color-surface)}.article-audit-entry-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.article-audit-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:9999px;white-space:nowrap}.audit-badge-created{background:#dcfce7;color:#166534}.audit-badge-updated{background:#dbeafe;color:#1e40af}.audit-badge-availability{background:#ffedd5;color:#9a3412}.audit-badge-request{background:#e0e7ff;color:#3730a3}.audit-badge-approved{background:#dcfce7;color:#166534}.audit-badge-rejected{background:#fee2e2;color:#991b1b}.audit-badge-shipped{background:#fce7f3;color:#9d174d}.audit-badge-received{background:#ede9fe;color:#5b21b6}.audit-badge-deleted{background:#fee2e2;color:#991b1b}.article-audit-timestamp{font-size:.75rem;color:var(--color-text-secondary);margin-left:auto}.article-audit-entry-meta{display:flex;align-items:center;gap:.5rem;margin-top:.25rem;flex-wrap:wrap}.article-audit-user{font-size:.8rem;color:var(--color-text-secondary)}.article-audit-instance-tag{font-size:.7rem;background:#f1f5f9;color:#475569;padding:.1rem .4rem;border-radius:4px}.article-audit-details{display:block;font-size:.8rem;color:var(--color-text-secondary);margin-top:.25rem}@media(max-width:640px){.article-audit-dialog{min-width:0;width:100%;max-width:none;max-height:90vh;border-radius:12px}}.rl-deployment-section{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-md);background:var(--color-surface)}.rl-deployment-section-title{font-weight:600;font-size:var(--text-base);margin-bottom:var(--space-sm)}.rl-deployment-table{display:flex;flex-direction:column;gap:var(--space-sm)}.rl-deployment-storage-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#f0fdf4;border-radius:6px;font-size:var(--text-base-sm)}.rl-deployment-storage-row .rl-deployment-label{flex:1}.rl-deployment-storage-row .rl-deployment-qty-auto{font-weight:600;color:#166534;min-width:60px;text-align:right}.rl-deployment-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);font-size:var(--text-base-sm);background:#f8fafc;border-radius:6px}.rl-deployment-row select{flex:1;min-width:0;padding:.3rem .5rem;font-size:var(--text-base-sm)}.rl-deployment-qty-input{width:56px;text-align:center;padding:.3rem .25rem;font-size:var(--text-base-sm)}.rl-deployment-remove{background:none;border:none;color:var(--color-danger);cursor:pointer;font-size:var(--text-base-sm);padding:.25rem;line-height:1}.rl-deployment-add{background:none;border:1px dashed var(--color-border);color:var(--color-primary);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:6px;font-size:var(--text-base-sm);align-self:flex-start}.rl-deployment-add:hover{background:var(--color-primary-light)}.rl-onhold-checkbox{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border);font-size:var(--text-base-sm)}.rl-onhold-checkbox input[type=checkbox]{width:16px;height:16px}.rl-deployment-error{color:var(--color-danger);font-size:var(--text-sm);margin-top:var(--space-xs)}.rl-deployment-summary{display:flex;flex-wrap:wrap;gap:4px}.rl-deployment-summary .rl-availability-badge{font-size:.7rem}.rl-deployment-readonly{display:flex;flex-wrap:wrap;gap:var(--space-xs);font-size:var(--text-base-sm)}.rl-deployment-readonly-item{background:#f1f5f9;padding:.15rem .5rem;border-radius:4px}@media(max-width:640px){.rl-deployment-row select{min-width:0;font-size:var(--text-sm)}.rl-deployment-qty-input{width:48px}}.btn-reminder-quick{background:none;border:none;cursor:pointer;padding:.25rem;font-size:1rem;line-height:1;border-radius:6px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;transition:background .15s;color:var(--color-text-secondary);flex-shrink:0}.btn-reminder-quick:hover{background:var(--color-primary-light);color:var(--color-primary)}.reminder-quick-dialog{max-width:440px;width:92%}.reminder-quick-dialog h3{margin:0 0 1rem;font-size:var(--text-lg)}.reminder-quick-dialog .form-group{margin-bottom:.75rem}.reminder-quick-dialog .form-label{font-size:var(--text-base-sm);margin-bottom:.25rem}.reminder-quick-dialog .form-row{display:flex;gap:var(--space-sm)}.reminder-quick-dialog .form-row>.form-group{flex:1;min-width:0}.reminder-quick-advance-chips{display:flex;flex-wrap:wrap;gap:.375rem}.reminder-quick-advance-chip{padding:.35rem .75rem;border-radius:9999px;border:1.5px solid var(--color-border);background:var(--color-surface);font-size:var(--text-base-sm);cursor:pointer;transition:all .15s;color:var(--color-text)}.reminder-quick-advance-chip:hover{border-color:#d4c8e8;background:var(--color-primary-light)}.reminder-quick-advance-chip.selected{border-color:var(--color-warning-text);color:var(--color-warning-text);background:var(--color-warning-bg);font-weight:500}.reminder-quick-dialog .confirm-dialog-actions{margin-top:1rem}.reminder-quick-success{color:var(--color-success, #16a34a);font-weight:500;font-size:var(--text-base-sm);margin-top:.5rem}.ai-chat-fab{position:fixed;bottom:1.5rem;right:1.5rem;z-index:298;width:52px;height:52px;border-radius:50%;border:none;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #7c3aed66;transition:transform .15s,box-shadow .15s}.ai-chat-fab:hover{transform:scale(1.08);box-shadow:0 6px 20px #7c3aed80}.ai-chat-fab:active{transform:scale(.96)}.ai-chat-overlay{position:fixed;inset:0;z-index:299;background:transparent}.ai-chat-panel{position:fixed;bottom:5rem;right:1.5rem;width:380px;max-height:500px;z-index:300;background:#fff;border-radius:12px;box-shadow:0 8px 30px #0000002e;display:flex;flex-direction:column;overflow:hidden;animation:aiChatSlideIn .2s ease-out}@keyframes aiChatSlideIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}.ai-chat-header-title{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem}.ai-chat-close{background:none;border:none;color:#fff;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .15s}.ai-chat-close:hover{opacity:1}.ai-chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem;min-height:200px;max-height:340px}.ai-chat-bubble{padding:.6rem .85rem;border-radius:12px;font-size:.88rem;line-height:1.45;max-width:85%;word-wrap:break-word;white-space:pre-wrap}.ai-chat-bubble-user{align-self:flex-end;background:#6d28d9;color:#fff;border-bottom-right-radius:4px}.ai-chat-bubble-bot{align-self:flex-start;background:#f3f0ff;color:#1e1b4b;border-bottom-left-radius:4px}.ai-chat-bubble-bot.ai-md{white-space:normal}.ai-md .ai-md-heading{margin:.4rem 0 .2rem;font-size:.92rem;font-weight:700;line-height:1.3}.ai-md .ai-md-p{margin:0 0 .3rem}.ai-md .ai-md-p:last-child{margin-bottom:0}.ai-md .ai-md-list{margin:.2rem 0 .3rem;padding-left:1.3rem}.ai-md .ai-md-list li{margin-bottom:.15rem}.ai-md .ai-md-code{background:#00000014;padding:.1rem .3rem;border-radius:3px;font-family:ui-monospace,monospace;font-size:.82rem}.ai-md .ai-md-pre{background:#0000000f;padding:.5rem .6rem;border-radius:6px;overflow-x:auto;margin:.3rem 0;font-size:.8rem;line-height:1.4;white-space:pre}.ai-md .ai-md-pre code{background:none;padding:0;font-family:ui-monospace,monospace}.ai-md a{color:#6d28d9;text-decoration:underline}.ai-md br+br{display:none}.ai-chat-typing{display:flex;gap:4px;padding:.7rem 1rem}.ai-chat-typing span{width:7px;height:7px;border-radius:50%;background:#a78bfa;animation:aiChatDot 1.2s infinite}.ai-chat-typing span:nth-child(2){animation-delay:.2s}.ai-chat-typing span:nth-child(3){animation-delay:.4s}@keyframes aiChatDot{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.ai-chat-error{font-size:.82rem;color:#dc2626;padding:.4rem .6rem;background:#fef2f2;border-radius:8px;align-self:center}.ai-chat-input-area{display:flex;align-items:flex-end;gap:.5rem;padding:.6rem .75rem;border-top:1px solid #e5e7eb;background:#fafafa}.ai-chat-input{flex:1;border:1px solid #d1d5db;border-radius:8px;padding:.5rem .65rem;font-size:.88rem;font-family:inherit;resize:none;min-height:36px;max-height:80px;line-height:1.35;outline:none;transition:border-color .15s}.ai-chat-input:focus{border-color:#7c3aed}.ai-chat-send{background:#7c3aed;color:#fff;border:none;border-radius:8px;padding:.45rem .6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.ai-chat-send:hover:not(:disabled){background:#6d28d9}.ai-chat-send:disabled{opacity:.4;cursor:default}@media(max-width:640px){.ai-chat-fab{bottom:1rem;right:1rem;width:48px;height:48px}.ai-chat-panel{left:.5rem;right:.5rem;width:auto;bottom:4rem;max-height:70vh}.ai-chat-messages{max-height:none}}.groceries-item-purchase-by{display:inline-flex;align-items:center;gap:.2rem}.pricing-page{max-width:1000px;margin:0 auto;padding:2rem 1rem}.pricing-header{text-align:center;margin-bottom:2rem}.pricing-header h1{font-size:2rem;margin-bottom:.5rem}.pricing-header p{color:var(--color-text-secondary);margin-bottom:1.5rem}.pricing-track-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}.pricing-track-btn{padding:.5rem 1.25rem;border:none;background:var(--color-surface);cursor:pointer;font-size:var(--text-base-sm);color:var(--color-text-secondary);transition:background .2s,color .2s}.pricing-track-btn.active{background:var(--color-primary);color:#fff}.pricing-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.pricing-toggle-btn{padding:.5rem 1.25rem;border:none;background:var(--color-surface);cursor:pointer;font-size:var(--text-base-sm);color:var(--color-text-secondary);transition:background .2s,color .2s;display:flex;align-items:center;gap:.5rem}.pricing-toggle-btn.active{background:var(--color-primary);color:#fff}.pricing-discount-badge{background:#dcfce7;color:#166534;font-size:.7rem;padding:.15rem .4rem;border-radius:999px;font-weight:600}.pricing-toggle-btn.active .pricing-discount-badge{background:#ffffff40;color:#fff}.pricing-error{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5;padding:.75rem 1rem;border-radius:var(--radius);text-align:center;margin-bottom:1.5rem;max-width:600px;margin-left:auto;margin-right:auto}.pricing-success{background:#f0fdf4;color:#166534;border:1px solid #86efac;padding:.75rem 1rem;border-radius:var(--radius);text-align:center;margin-bottom:1.5rem;max-width:600px;margin-left:auto;margin-right:auto}.pricing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}.pricing-card{border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);padding:1.5rem;background:var(--color-surface);position:relative}.pricing-card-featured{border-color:var(--color-primary);border-width:2px;box-shadow:0 4px 24px #00000014}.pricing-card-premium{border-color:#d4a017;border-width:2px;box-shadow:0 4px 24px #d4a0171f}.pricing-premium-badge{background:linear-gradient(135deg,#d4a017,#b8860b)!important}.pricing-card-current{opacity:.85}.pricing-popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--color-primary);color:#fff;padding:.2rem .8rem;border-radius:999px;font-size:.75rem;font-weight:600}.pricing-card-header h2{margin:0 0 .75rem;font-size:1.25rem}.pricing-card-price{margin-bottom:1rem}.pricing-price-amount{font-size:2rem;font-weight:700}.pricing-price-interval{color:var(--color-text-secondary);font-size:var(--text-base-sm);margin-left:.25rem}.pricing-features{list-style:none;padding:0;margin:0 0 1.5rem}.pricing-features li{padding:.35rem 0 .35rem 1.5rem;position:relative;font-size:var(--text-base-sm);color:var(--color-text-secondary)}.pricing-features li:before{content:"✓";position:absolute;left:0;color:#16a34a;font-weight:600}.pricing-card-action{text-align:center}.pricing-card-action .btn{width:100%}.pricing-current-badge{display:inline-block;width:100%;padding:.5rem 1rem;background:#dcfce7;color:#166534;border:2px solid #86efac;border-radius:var(--radius);font-weight:600;font-size:var(--text-base-sm);text-align:center}.pricing-coming-soon-badge{display:inline-block;width:100%;padding:.5rem 1rem;background:#fef3c7;color:#92400e;border:2px solid #fcd34d;border-radius:var(--radius);font-weight:600;font-size:var(--text-base-sm);text-align:center}.pricing-family-member-hint{display:inline-block;width:100%;padding:.5rem 1rem;color:var(--color-text-secondary);font-size:var(--text-sm);text-align:center}.pricing-trial-hint{margin-top:.5rem;font-size:.75rem;color:var(--color-text-secondary)}@media(max-width:768px){.pricing-cards{grid-template-columns:1fr;max-width:400px;margin:0 auto}}.billing-page,.family-page{max-width:600px;margin:0 auto;padding:2rem 1rem}.billing-page h1,.family-page h1{margin-bottom:1.5rem}.family-billing-link{margin-top:1.5rem;text-align:center}.portal-family-section{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#fef9c3,#fef3c7);border:1px solid #f59e0b;border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem;cursor:pointer;transition:box-shadow .15s,transform .15s}.portal-family-section:hover{box-shadow:0 4px 12px #f59e0b40;transform:translateY(-1px)}.portal-family-section-left{display:flex;align-items:center;gap:.75rem}.portal-family-icon{font-size:1.75rem}.portal-family-section-info h3{margin:0;font-size:1rem;font-weight:600;color:#92400e}.portal-family-section-counts{font-size:.85rem;color:#a16207}.portal-family-section-action{font-size:.9rem;font-weight:600;color:#b45309;white-space:nowrap}.billing-success-banner{background:#dcfce7;color:#166534;padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;text-align:center;border:1px solid #86efac}.billing-card{border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);padding:2rem;background:var(--color-surface);margin-bottom:1.5rem}.billing-card h2{margin:0 0 1rem;font-size:1.1rem}.billing-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--color-border)}.billing-label{color:var(--color-text-secondary)}.billing-value{font-weight:600}.billing-plan-name{text-transform:capitalize}.billing-status-active,.billing-status-trialing{color:#16a34a}.billing-status-past_due{color:#dc2626}.billing-status-canceled{color:var(--color-text-secondary)}.billing-cancel-info{margin-top:.75rem;padding:.5rem .75rem;background:#fef3c7;color:#92400e;border-radius:var(--radius);font-size:var(--text-base-sm)}.billing-no-plan{text-align:center;padding:1rem 0}.billing-no-plan p{color:var(--color-text-secondary);margin-bottom:1rem}.billing-family-member-hint{color:var(--color-text-secondary);font-size:var(--text-base-sm);margin-top:.75rem;line-height:1.5}.billing-actions{margin-top:1rem;text-align:center;display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.billing-upgrade-teaser{margin-top:1rem;padding:.75rem 1rem;background:linear-gradient(135deg,#fef9c3,#fef3c7);border:1px solid #d4a017;border-radius:var(--radius);color:#92400e;font-size:var(--text-base-sm);cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:background .2s}.billing-upgrade-teaser:hover{background:linear-gradient(135deg,#fef3c7,#fde68a)}.billing-teaser-icon{font-size:1.1rem;color:#d4a017}.billing-family-card{margin-top:1rem}.billing-family-empty{color:var(--color-text-secondary);font-size:var(--text-base-sm)}.billing-family-list{list-style:none;padding:0;margin:0 0 1rem}.billing-family-member{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--color-border);font-size:var(--text-base-sm)}.billing-family-member-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.billing-family-member-name{font-weight:500}.billing-family-member-email{font-size:var(--text-sm);color:var(--color-text-secondary)}.billing-family-badge{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;font-weight:600;flex-shrink:0}.billing-family-active{background:#dcfce7;color:#166534}.billing-family-pending{background:#fef3c7;color:#92400e}.billing-family-member-actions{display:flex;align-items:center;gap:.5rem}.billing-family-revoke{padding:.125rem .375rem;font-size:.875rem;line-height:1;color:var(--color-text-secondary)}.billing-family-revoke:hover{color:var(--color-danger)}.billing-family-max{color:var(--color-text-secondary);font-size:var(--text-base-sm);text-align:center}.billing-invite-form{display:flex;gap:.5rem;margin-top:.75rem}.billing-invite-form input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-base-sm)}.billing-invite-form .btn{white-space:nowrap}.billing-error{color:#dc2626;font-size:var(--text-base-sm);margin-top:.5rem}.billing-success{color:#16a34a;font-size:var(--text-base-sm);margin-top:.5rem}.alexa-authorize-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem;background:var(--color-bg)}.alexa-authorize-card{background:var(--color-surface);padding:2.5rem 2rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:420px;width:100%;border:1px solid var(--color-border)}.alexa-authorize-card .alexa-logo{display:block;height:48px;width:auto;margin:0 auto 1.5rem}.alexa-authorize-card h1{font-size:var(--text-xl);text-align:center;margin-bottom:.5rem}.alexa-authorize-desc{color:var(--color-text-secondary);font-size:var(--text-base-sm);text-align:center;margin-bottom:1.5rem}.alexa-status{font-size:var(--text-base-sm);margin-top:.5rem}.alexa-linked{color:#16a34a}.alexa-not-linked{color:var(--color-text-secondary)}.landing-page{min-height:100vh;background:var(--color-bg);color:var(--color-text);scroll-behavior:smooth}.landing-container{max-width:1120px;margin:0 auto;padding:0 24px}.landing-header{position:sticky;top:0;z-index:100;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.landing-header-inner{height:64px;display:flex;align-items:center;justify-content:space-between}.landing-logo-link{display:flex;align-items:center}.landing-header-logo{height:30px}.landing-nav{display:flex;align-items:center;gap:24px}.landing-nav-link{color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:500;transition:color .2s}.landing-nav-link:hover{color:var(--color-primary)}.landing-nav-login{color:var(--color-text);font-weight:600}.landing-nav-cta{font-size:var(--text-sm)!important;padding:8px 20px!important;border-radius:8px!important}.landing-hero{background:var(--color-bg) url(/hero-bg.jpg) center / cover no-repeat;position:relative}.landing-hero:before{content:"";position:absolute;inset:0;background:#fbf8f5c7;z-index:0}.landing-hero-inner{text-align:center;padding:72px 0 56px;position:relative;z-index:1}.landing-hero-logo{width:100px;height:auto;margin-bottom:28px}.landing-hero-title{font-family:var(--font-heading, "Plus Jakarta Sans", sans-serif);font-size:3rem;font-weight:800;line-height:1.1;color:var(--color-text);margin:0 0 8px}.landing-hero-subtitle{font-size:1.5rem;color:var(--color-primary);font-weight:600;margin:0 0 24px}.landing-hero-desc{font-size:1.1rem;color:var(--color-text-secondary);max-width:560px;margin:0 auto 40px;line-height:1.65}.landing-hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.landing-section{padding:80px 0}.landing-section h2{font-family:var(--font-heading, "Plus Jakarta Sans", sans-serif);font-size:2rem;font-weight:700;text-align:center;margin:0 0 12px}.landing-section-subtitle{text-align:center;color:var(--color-text-secondary);font-size:1.05rem;margin:0 auto 48px;max-width:520px;line-height:1.5}.landing-bg-white{background:var(--color-surface)}.landing-modules-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;max-width:1060px;margin:0 auto}.landing-module-card{background:var(--color-bg);border-radius:var(--radius);padding:28px 20px;text-align:center;border-top:4px solid;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.landing-bg-white .landing-module-card{background:var(--color-bg)}.landing-module-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.landing-module-icon{width:52px;height:52px;object-fit:contain;margin-bottom:14px}.landing-module-card h3{font-family:var(--font-heading, "Plus Jakarta Sans", sans-serif);font-size:1.05rem;font-weight:700;margin:0 0 8px}.landing-module-card p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.landing-reminder-hub{margin-top:40px;display:flex;flex-direction:column;align-items:center}.landing-connector-dots{display:flex;gap:20px;justify-content:center}.landing-connector-dot{width:10px;height:10px;border-radius:50%}.landing-connector-stem{width:2px;height:28px;background:var(--color-border)}.landing-reminder-card{display:flex;align-items:center;gap:24px;background:linear-gradient(135deg,#9333ea0a,#9333ea03);border:2px solid #9333ea;border-radius:var(--radius);padding:24px 36px;max-width:520px;box-shadow:var(--shadow)}.landing-reminder-icon{width:56px;height:56px;object-fit:contain;flex-shrink:0}.landing-reminder-text{text-align:left}.landing-reminder-text h3{font-family:var(--font-heading, "Plus Jakarta Sans", sans-serif);font-size:1.1rem;font-weight:700;margin:0 0 4px}.landing-reminder-tagline{display:block;font-size:var(--text-xs);font-weight:600;color:#9333ea;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.landing-reminder-text p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.landing-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;max-width:900px;margin:0 auto}.landing-step{text-align:center}.landing-step-number{width:48px;height:48px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:1.25rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.landing-step h3{font-size:1rem;font-weight:600;margin:0 0 6px}.landing-step p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:860px;margin:0 auto}.landing-feature-card{text-align:center;padding:20px 16px}.landing-feature-icon{font-size:2rem;display:block;margin-bottom:12px}.landing-feature-card h3{font-size:1rem;font-weight:600;margin:0 0 6px}.landing-feature-card p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.landing-pricing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:860px;margin:0 auto 32px;align-items:start}.landing-pricing-card{background:var(--color-surface);border-radius:var(--radius);padding:32px 24px 28px;text-align:center;position:relative;box-shadow:var(--shadow);border:2px solid transparent}.landing-pricing-featured{border-color:var(--color-primary);transform:scale(1.04)}.landing-pricing-premium{border-color:#9333ea}.landing-pricing-badge{position:absolute;top:-13px;left:50%;transform:translate(-50%);background:var(--color-primary);color:#fff;padding:4px 18px;border-radius:20px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.landing-pricing-badge-premium{background:#9333ea}.landing-pricing-card h3{font-size:1.1rem;font-weight:700;margin:0 0 12px}.landing-pricing-track{display:flex;gap:0;justify-content:center;margin-bottom:16px;background:var(--color-surface-muted, #f0f0f0);border-radius:8px;padding:3px}.landing-pricing-track-btn{flex:1;padding:6px 12px;border:none;background:transparent;border-radius:6px;font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.landing-pricing-track-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 3px #0000001a}.landing-pricing-price{margin-bottom:24px}.landing-pricing-amount{font-size:2rem;font-weight:800;color:var(--color-text)}.landing-pricing-interval{color:var(--color-text-secondary);font-size:var(--text-sm);margin-left:4px}.landing-pricing-card ul{list-style:none;padding:0;margin:0 0 24px;text-align:left}.landing-pricing-card li{padding:5px 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.landing-pricing-card li:before{content:"✓ ";color:var(--color-success);font-weight:700}.landing-trust-section{padding:40px 0;background:var(--color-surface)}.landing-trust-items{display:flex;justify-content:center;gap:40px;flex-wrap:wrap}.landing-trust-item{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500}.landing-trust-check{color:var(--color-success);font-weight:700;font-size:1.1rem}.landing-cta-section{background:var(--color-primary);color:#fff;padding:72px 24px}.landing-cta-inner{text-align:center}.landing-cta-inner h2{font-family:var(--font-heading, "Plus Jakarta Sans", sans-serif);font-size:2rem;font-weight:700;margin:0 0 12px;color:#fff}.landing-cta-inner p{color:#ffffffd9;font-size:1.05rem;margin:0 0 32px}.landing-cta-btn{background:#fff!important;color:var(--color-primary)!important;font-weight:700!important;border:none!important;padding:14px 36px!important;border-radius:10px!important;font-size:1rem!important;cursor:pointer;transition:transform .15s,box-shadow .15s}.landing-cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0003}.landing-footer{background:#1e293b;color:#ffffffb3;padding:24px}.landing-footer-inner{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.landing-footer-nav{display:flex;gap:24px}.landing-footer a{color:#fff9;text-decoration:none;transition:color .2s}.landing-footer a:hover{color:#fff}.btn-lg{padding:14px 32px!important;font-size:1rem!important}@media(max-width:900px){.landing-modules-grid{grid-template-columns:repeat(3,1fr);max-width:700px}.landing-pricing-cards{grid-template-columns:1fr;max-width:360px;margin-left:auto;margin-right:auto}.landing-pricing-featured{transform:none}}@media(max-width:768px){.landing-hero-title{font-size:2.25rem}.landing-hero-subtitle{font-size:1.2rem}.landing-hero-desc{font-size:1rem}.landing-section h2{font-size:1.6rem}.landing-steps{grid-template-columns:repeat(2,1fr);gap:24px}.landing-features-grid{grid-template-columns:repeat(2,1fr);gap:20px}.landing-trust-items{gap:16px 32px}.landing-footer-inner{flex-direction:column;gap:12px;text-align:center}.landing-nav-link:not(.landing-nav-cta){display:none}.landing-nav{gap:16px}.navbar-public-container{height:56px}}@media(max-width:480px){.landing-header-inner{height:56px}.landing-header-logo{height:24px}.landing-hero-inner{padding:48px 0 40px}.landing-hero-logo{width:72px}.landing-hero-title{font-size:1.75rem}.landing-hero-subtitle{font-size:1.05rem}.landing-section{padding:56px 0}.landing-section-subtitle{margin-bottom:32px}.landing-modules-grid{grid-template-columns:1fr 1fr;gap:12px}.landing-module-card{padding:20px 14px}.landing-module-icon{width:40px;height:40px}.landing-module-card h3{font-size:.95rem}.landing-reminder-card{flex-direction:column;text-align:center;padding:20px}.landing-reminder-text{text-align:center}.landing-steps{grid-template-columns:1fr 1fr;gap:20px}.landing-features-grid{grid-template-columns:1fr;gap:16px}.landing-cta-section{padding:48px 24px}.landing-cta-inner h2{font-size:1.5rem}.landing-nav-login{display:none}}.scan-mode-overlay{z-index:1100}.scan-mode-dialog{width:92%;max-width:420px;max-height:90vh;overflow-y:auto;padding:0;border-radius:16px}.scan-mode-header{display:flex;align-items:center;gap:.5rem;padding:.875rem 1rem;border-bottom:1px solid var(--color-border)}.scan-mode-header h3{margin:0;font-size:var(--text-lg);flex:1;display:flex;align-items:center;gap:.4rem}.scan-mode-counter{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;background:var(--color-primary);color:#fff;border-radius:999px;padding:0 .5rem;font-size:var(--text-sm);font-weight:600}.btn-close-x{background:none;border:none;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);transition:background .15s;flex-shrink:0}.btn-close-x:hover{background:var(--color-hover)}.scan-mode-body{padding:1rem 1.25rem}.scan-mode-capture{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 0}.scan-capture-icon{color:var(--color-text-muted);opacity:.5}.scan-mode-capture p{color:var(--color-text-muted);margin:0;font-size:var(--text-sm);text-align:center}.scan-mode-analyzing{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 0}.scan-mode-analyzing .spinner-small{width:32px;height:32px;border-width:3px;color:var(--color-primary)}.scan-mode-card{display:flex;flex-direction:column;gap:.6rem}.scan-mode-card .form-group{margin-bottom:0}.scan-mode-card .form-label{font-size:var(--text-sm);margin-bottom:.15rem}.scan-mode-card input{width:100%}.scan-mode-row{display:flex;gap:.75rem}.scan-mode-qty{flex:0 0 5rem}.scan-mode-loc{flex:1;min-width:0}.scan-mode-category-hint{font-size:var(--text-xs);color:var(--text-secondary);margin-top:-.3rem}.scan-mode-actions{display:flex;gap:.5rem;margin-top:.75rem}.scan-mode-actions .btn{flex:1;justify-content:center}.scan-mode-actions .btn-ghost{flex:0 0 auto}.scan-auto-capture{cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-base)}.external-costs-admin{max-width:900px}.external-costs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.external-costs-header h1{font-size:1.5rem;font-weight:700;margin:0}.external-costs-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.cost-summary-card{background:var(--bg-white, #fff);border:1px solid var(--border-light, #e5e7eb);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.25rem}.cost-summary-label{font-size:.8rem;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.03em}.cost-summary-value{font-size:1.5rem;font-weight:700;color:var(--text-dark, #1f2937)}.external-costs-table{border:1px solid var(--border-light, #e5e7eb);border-radius:12px;overflow:hidden;background:var(--bg-white, #fff)}.ec-table-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 48px;gap:.5rem;padding:.75rem 1rem;background:var(--bg-light, #f9fafb);border-bottom:1px solid var(--border-light, #e5e7eb);font-size:.75rem;font-weight:600;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.03em}.ec-table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 48px;gap:.5rem;padding:.875rem 1rem;border-bottom:1px solid var(--border-light, #e5e7eb);cursor:pointer;transition:background .15s;align-items:center}.ec-table-row:last-child{border-bottom:none}.ec-table-row:hover{background:var(--bg-light, #f9fafb)}.ec-col-name strong{display:block;font-size:.95rem}.ec-notes{display:block;font-size:.78rem;color:var(--text-muted, #6b7280);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.ec-col-cost{font-weight:600;font-variant-numeric:tabular-nums}.ec-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600;white-space:nowrap}.ec-cat-social{background:#ede9fe;color:#6d28d9}.ec-cat-ai{background:#dbeafe;color:#2563eb}.ec-cat-hosting{background:#d1fae5;color:#047857}.ec-cat-tools{background:#fef3c7;color:#92400e}.ec-cat-marketing{background:#fce7f3;color:#be185d}.ec-cat-other{background:#f3f4f6;color:#4b5563}.ec-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600;white-space:nowrap}.ec-status-free{background:#d1fae5;color:#047857}.ec-status-trial{background:#fef3c7;color:#92400e}.ec-status-paid{background:#dbeafe;color:#2563eb}.ec-status-cancelled{background:#fee2e2;color:#991b1b}.ec-delete-btn{opacity:.4;transition:opacity .15s}.ec-table-row:hover .ec-delete-btn{opacity:1}.ec-form-dialog{max-width:520px;width:100%}.ec-form-dialog h3{margin:0 0 1.25rem;font-size:1.1rem;font-weight:700}.ec-form-grid{display:flex;flex-direction:column;gap:1rem}.ec-form-row label{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted, #6b7280);margin-bottom:4px}.ec-form-row input,.ec-form-row select,.ec-form-row textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border-light, #d1d5db);border-radius:8px;font-size:.9rem;font-family:inherit}.ec-form-row textarea{resize:vertical;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;line-height:1.5}.ec-form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ec-form-row-2col label{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted, #6b7280);margin-bottom:4px}.ec-form-row-2col select,.ec-form-row-2col input{width:100%;padding:.5rem .75rem;border:1px solid var(--border-light, #d1d5db);border-radius:8px;font-size:.9rem}.ec-form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-light, #e5e7eb)}@media(max-width:768px){.external-costs-summary{grid-template-columns:1fr}.ec-table-header{display:none}.ec-table-row{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem}.ec-col-name{flex:1 1 100%}.ec-col-category,.ec-col-status{flex:0 0 auto}.ec-col-cost,.ec-col-cycle{flex:0 0 auto;font-size:.85rem}.ec-col-actions{flex:0 0 auto;margin-left:auto}.ec-form-row-2col{grid-template-columns:1fr}}.rl-category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:.5rem 0}.rl-category-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:var(--bg-white, #fff);border:1px solid var(--border-light, #e5e7eb);border-radius:14px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .15s}.rl-category-card:hover{border-color:#1a365d;box-shadow:0 4px 12px #1a365d1a;transform:translateY(-1px)}.rl-category-card:focus-visible{outline:2px solid #1a365d;outline-offset:2px}.rl-category-card-empty{opacity:.55}.rl-category-card-icon{font-size:2rem;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#f0f4f8;border-radius:12px}.rl-category-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rl-category-card-name{font-weight:600;font-size:.95rem;color:var(--text-dark, #1f2937);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rl-category-card-count{font-size:.8rem;color:var(--color-text-muted, #6b7280);font-weight:400}.rl-back-btn{flex-shrink:0;font-weight:600;color:#1a365d}@media(max-width:900px){.rl-category-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.rl-category-grid{grid-template-columns:1fr}.rl-category-card{padding:1rem 1.25rem}}
