@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;line-height:1.5;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img,svg,video{max-width:100%;height:auto}button{font-family:inherit;cursor:pointer}a{color:var(--link);text-decoration:none;transition:color .3s ease}a:hover{color:var(--link-hover)}:root{--bg: #e8dfd2;--bg-elevated: #ebe4d8;--text: #2c251f;--text-muted: #5c5045;--accent: #c96b3a;--accent-hover: #b85c2e;--accent-muted: #e5c9b3;--surface: #e8dfd4;--surface-hover: #e2d9cc;--border: #d4c9bb;--border-hover: #c9bcac;--success: #2d7a52;--success-muted: #a8c9b5;--error: #b84a4a;--error-muted: #e8c4c4;--link: #8b6914;--link-hover: #6b5010;--focus-ring: 0 0 0 3px rgba(201, 107, 58, .4);--shadow: 0 2px 12px rgba(46, 38, 32, .08);--shadow-lg: 0 8px 32px rgba(46, 38, 32, .12)}[data-theme=dark]{--bg: #1a1a1d;--bg-elevated: #242428;--text: #f2ebe2;--text-muted: #a89f95;--accent: #e8a878;--accent-hover: #f5b88a;--accent-muted: #4a3528;--surface: #2a2a2e;--surface-hover: #352f2a;--border: #3a3632;--border-hover: #4a4238;--success: #4daf7a;--success-muted: #2a4d38;--error: #e87878;--error-muted: #4d3232;--link: #d4a84a;--link-hover: #f0c85a;--focus-ring: 0 0 0 3px rgba(232, 168, 120, .4);--shadow: 0 2px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .45)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html{overflow-x:hidden}body{background-color:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}.app-content{background-color:var(--bg)}.nav-badge{margin-inline-start:auto;flex-shrink:0;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:#e53935;color:#fff;font-size:.68rem;font-weight:700;line-height:1.25rem;text-align:center;box-sizing:border-box}.app-sidebar--collapsed .nav-badge,.icon-sidebar__link .nav-badge{position:absolute;top:.15rem;right:.1rem;margin-inline-start:0;min-width:1rem;height:1rem;padding:0 .2rem;font-size:.58rem;line-height:1rem}.icon-sidebar__link .nav-badge{top:.35rem;right:.35rem}.sidebar-link,.icon-sidebar__link{position:relative}.sidebar-link__label-wrap{display:flex;align-items:center;gap:.35rem;flex:1;min-width:0}.icon-sidebar{display:none;position:fixed;top:0;left:0;bottom:0;width:60px;z-index:5;flex-direction:column;padding:.5rem 0;border-inline-end:1px solid var(--border);background:var(--bg-elevated);transition:opacity .3s}@media(min-width:641px)and (max-width:1110px){.icon-sidebar{display:flex}}@media(min-width:641px)and (max-width:1110px){.icon-sidebar--menu-open{opacity:0;pointer-events:none}}.icon-sidebar__hamburger{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 auto .5rem;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text-muted);cursor:pointer;transition:color .3s,background-color .3s,border-color .3s}.icon-sidebar__hamburger:hover{color:var(--text);background:var(--surface-hover);border-color:var(--border-hover)}.icon-sidebar__hamburger svg{display:block;width:20px;height:20px}.icon-sidebar__nav{flex:1;display:flex;flex-direction:column;padding-block-start:.25rem;min-height:0}.icon-sidebar__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:.25rem}.icon-sidebar__list--secondary{margin-block-start:auto;padding-block-start:1rem;border-block-start:1px solid var(--border)}.icon-sidebar__link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;color:var(--text);transition:color .3s,background-color .3s}.icon-sidebar__link:hover{background:var(--surface-hover);color:var(--text)}.icon-sidebar__link--active{background:var(--accent-muted);color:var(--accent)}.icon-sidebar__link--active:hover{background:var(--accent);color:#fff}.icon-sidebar__link svg{display:block;width:20px;height:20px}.mobile-header{display:flex;align-items:center;padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.mobile-header__menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;transition:background-color .3s,border-color .3s}.mobile-header__menu-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.mobile-header__menu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mobile-header__menu-btn svg{width:22px;height:22px}.auth-modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:auth-overlay-in .3s ease-out}@keyframes auth-overlay-in{0%{opacity:0}to{opacity:1}}.auth-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;max-width:420px;width:100%;box-shadow:0 12px 40px #0003;animation:auth-modal-in .4s ease-out}@keyframes auth-modal-in{0%{opacity:0;transform:scale(.97) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-modal__header{display:flex;align-items:center;justify-content:space-between;padding:2rem 2rem 1rem}.auth-modal__title{margin:0;font-size:1.35rem;font-weight:600;color:var(--text);letter-spacing:-.02em}.auth-modal__close{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer}.auth-modal__close:hover{color:var(--text);background:var(--surface-hover)}.auth-modal__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-modal__close{width:2.25rem;height:2.25rem}.auth-modal__close-icon{display:flex;align-items:center;justify-content:center;line-height:1;font-size:1.5rem;transform:translateY(-.04em);font-size:1.75rem}.auth-modal__tabs{display:flex;gap:0;padding:0 2rem;border-bottom:1px solid var(--border)}.auth-modal__tab{flex:1;padding:.75rem 1rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-muted);font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:color .3s,border-color .3s}.auth-modal__tab:hover{color:var(--text)}.auth-modal__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.auth-modal__tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.auth-modal__form{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.auth-modal__field{display:flex;flex-direction:column;gap:.35rem}.auth-modal__label{font-size:.8rem;font-weight:500;color:var(--text-muted);letter-spacing:.02em}.auth-modal__input{background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem;padding:.7rem .85rem;font-family:inherit;transition:border-color .3s,box-shadow .3s}.auth-modal__input::placeholder{color:var(--text-muted);opacity:.7}.auth-modal__input:focus{border-color:var(--accent);outline:none}.auth-modal__submit{background:var(--accent);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;padding:.85rem 1rem;cursor:pointer;margin-top:.25rem;transition:background-color .3s,opacity .3s}.auth-modal__submit:hover:not(:disabled){background:var(--accent-hover)}.auth-modal__submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-modal__submit:disabled{opacity:.65;cursor:not-allowed}.auth-modal__footer{padding:1rem 2rem 2rem;margin:0;font-size:.9rem;color:var(--text-muted);text-align:center;border-top:1px solid var(--border)}.auth-modal__footer-link{background:none;border:none;color:var(--accent);font-weight:500;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px;font-family:inherit;font-size:inherit}.auth-modal__footer-link:hover{color:var(--accent-hover)}.auth-modal__footer-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.notification-toast-container{position:fixed;top:1rem;right:1rem;z-index:10000;display:flex;flex-direction:column;gap:.5rem;max-width:min(400px,100vw - 2rem);pointer-events:none}.notification-toast-container>*{pointer-events:auto}.notification-toast{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem 1rem;border-radius:10px;box-shadow:var(--shadow-lg);background:var(--bg-elevated);border-left:4px solid;min-width:260px;max-width:100%;animation:notification-toast-slide-in .3s ease-out}.notification-toast--exit{animation:notification-toast-slide-out .3s ease-in forwards}.notification-toast--success{border-left-color:var(--success)}.notification-toast--success .notification-toast__icon{background:var(--success);color:#fff}.notification-toast--error{border-left-color:var(--error)}.notification-toast--error .notification-toast__icon{background:var(--error);color:#fff}.notification-toast--warning{border-left-color:#f59e0b}.notification-toast--warning .notification-toast__icon{background:#f59e0b;color:#fff}.notification-toast--info{border-left-color:var(--accent)}.notification-toast--info .notification-toast__icon{background:var(--accent);color:#1a1a1d}.notification-toast__content{display:flex;align-items:flex-start;gap:.5rem;flex:1;min-width:0}.notification-toast__text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.notification-toast__action{font-size:.8rem;font-weight:600;color:var(--text);text-decoration:underline;text-underline-offset:.15em;transition:color .3s ease,opacity .3s ease}.notification-toast__action:hover{color:var(--accent)}.notification-toast__icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.notification-toast__message{color:var(--text);font-size:.875rem;font-weight:500;line-height:1.35}.notification-toast__close{flex-shrink:0;background:none;border:none;color:var(--text-muted);font-size:1.25rem;line-height:1;cursor:pointer;padding:0;margin-top:.1rem;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;transition:color .3s ease,background-color .3s ease,opacity .3s ease}.notification-toast__close:hover{color:var(--text)}.notification-toast__close:focus{outline:2px solid var(--accent);outline-offset:2px}@keyframes notification-toast-slide-in{0%{transform:translate(calc(100% + 1rem));opacity:0}to{transform:translate(0);opacity:1}}@keyframes notification-toast-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(calc(100% + 1rem));opacity:0}}.floating-apps{--fab-size: 56px;--bubble-size: 52px;--radius-gap: 18px;position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:max(1rem,env(safe-area-inset-bottom,0px));z-index:35;width:var(--fab-size);height:var(--fab-size)}@media(min-width:641px){.floating-apps{right:max(1.5rem,env(safe-area-inset-right,0px));bottom:max(1.5rem,env(safe-area-inset-bottom,0px))}}.floating-apps__toggler{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:3;margin:0}.floating-apps__fab{position:absolute;inset:0;z-index:2;display:grid;place-items:center;border-radius:50%;border:2px solid transparent;background:var(--accent);color:#fff8f2;box-shadow:0 10px 28px #c96b3a47;cursor:pointer;transition:background-color .4s ease,border-color .4s ease,box-shadow .4s ease,color .4s ease}.floating-apps__fab-icon{display:grid;place-items:center;width:24px;height:24px;line-height:0;transform:rotate(0);transition:transform .4s ease}.floating-apps.is-open .floating-apps__fab-icon{transform:rotate(-45deg)}.floating-apps__fab-svg{display:block;width:22px;height:22px}.floating-apps__toggler:hover+.floating-apps__fab,.floating-apps__toggler:focus-visible+.floating-apps__fab,.floating-apps.is-open .floating-apps__toggler:hover+.floating-apps__fab,.floating-apps.is-open .floating-apps__toggler:focus-visible+.floating-apps__fab{background:var(--accent-hover);border-color:transparent;color:#fff8f2;box-shadow:0 10px 26px #c96b3a5c}.floating-apps.is-open .floating-apps__fab{background:var(--accent-hover);border-color:transparent;color:#fff8f2;box-shadow:0 10px 26px #c96b3a52}.floating-apps__list{position:absolute;inset:0;margin:0;padding:0;list-style:none;pointer-events:none}.floating-apps__item{position:absolute;top:50%;left:50%;width:var(--bubble-size);height:var(--bubble-size);margin:calc(var(--bubble-size) / -2) 0 0 calc(var(--bubble-size) / -2);opacity:0;transform:rotate(0) translate(0);transition:transform .45s ease,opacity .35s ease}.floating-apps.is-open .floating-apps__item{opacity:1;pointer-events:auto}.floating-apps.is-open .floating-apps__item--1{transform:rotate(-110deg) translate(calc(var(--fab-size) + var(--radius-gap))) rotate(110deg)}.floating-apps.is-open .floating-apps__item--2{transform:rotate(-155deg) translate(calc(var(--fab-size) + var(--radius-gap))) rotate(155deg)}.floating-apps__bubble{width:100%;height:100%;border-radius:50%;border:2px solid transparent;display:grid;place-items:center;cursor:pointer;position:relative;padding:0;box-shadow:0 8px 20px #2e262029;transition:border-color .4s ease,background-color .4s ease,box-shadow .4s ease}.floating-apps__bubble img{width:22px;height:auto;display:block}.floating-apps__bubble--sous{background:var(--bg-elevated);border-color:var(--accent);color:var(--accent);box-shadow:0 8px 20px #2e262029}.floating-apps__bubble--sous:hover,.floating-apps__bubble--sous:focus-visible{background:var(--accent-muted);border-color:var(--accent);box-shadow:0 8px 18px #2e262033}.floating-apps__bubble--tori{background:transparent;border-color:transparent;overflow:visible;box-shadow:0 8px 20px #2e262029}.floating-apps__bubble--tori:hover,.floating-apps__bubble--tori:focus-visible{background:var(--accent-muted);box-shadow:0 8px 18px #2e262033}.floating-apps__bubble:after{content:attr(data-tooltip);position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:4px 8px;border-radius:6px;background:#2c251feb;color:#fff8f2;font-size:.75rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .4s ease;z-index:2}.floating-apps__bubble:hover:after,.floating-apps__bubble:focus-visible:after{opacity:1}.floating-apps__bubble-icon{display:grid;place-items:center;width:22px;height:22px;color:inherit}.floating-apps__bubble-icon svg{width:22px;height:22px}.floating-apps__bubble-mark{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#12121f;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}.floating-apps__bubble-mark img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.floating-apps__panel{position:absolute;right:0;bottom:calc(var(--fab-size) + 1rem);width:min(280px,100vw - 24px);display:flex;flex-direction:column;gap:1rem;padding:1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg)}.floating-apps__panel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.floating-apps__panel-brand{display:flex;align-items:center;gap:.5rem;min-width:0}.floating-apps__panel-logo{width:28px;height:auto;display:block}.floating-apps__panel-logo-wrap{width:32px;height:32px;border-radius:50%;overflow:hidden;background:#12121f;flex-shrink:0;clip-path:circle(50%)}.floating-apps__panel-logo-wrap img{width:100%;height:100%;object-fit:cover;object-position:center}.floating-apps__panel-eyebrow{margin:0;font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.floating-apps__panel-title{margin:0;font-size:1.125rem;font-weight:700;color:var(--text)}.floating-apps__panel-close{width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;padding:0;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .4s ease,color .4s ease,border-color .4s ease}.floating-apps__panel-close .floating-apps__fab-svg{width:14px;height:14px;display:block}.floating-apps__panel-close:hover{background:var(--accent-muted);color:var(--text);border-color:var(--border-hover)}.floating-apps__panel-body{margin:0;font-size:.875rem;line-height:1.45;color:var(--text-muted)}.floating-apps__panel-cta{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 1rem;border-radius:6px;border:none;background:var(--accent-muted);color:var(--text);text-decoration:none;font-weight:700;font-size:.875rem;cursor:pointer;transition:background-color .4s ease,color .4s ease}.floating-apps__panel-cta:disabled{opacity:.55;cursor:not-allowed}.floating-apps__panel-cta--tori{background:#a9a9ff;color:#12121f}.floating-apps__panel-cta--tori:hover{background:#0000ab;color:#fcfcfc}.floating-apps__panel-cta--sous{background:var(--accent);color:#fff}.floating-apps__panel-cta--sous:hover{background:var(--accent-hover);color:#fff}body:has(.recipes-form-overlay) .floating-apps,body:has(.recipe-view-overlay) .floating-apps,body:has(.auth-modal-overlay) .floating-apps,body:has(.shopping-list-modal-overlay) .floating-apps,body:has(.add-item-modal-overlay) .floating-apps,body:has(.duplicate-items-modal-overlay) .floating-apps,body:has(.list-picker-overlay) .floating-apps,body.whisk-hide-fab .floating-apps{display:none}[data-theme=dark] .floating-apps__fab{background:var(--accent);border-color:transparent;color:#1a1a1d;box-shadow:0 10px 28px #00000073}[data-theme=dark] .floating-apps.is-open .floating-apps__fab{background:var(--accent-hover);border-color:transparent;color:#1a1a1d;box-shadow:0 10px 26px #0006}[data-theme=dark] .floating-apps__toggler:hover+.floating-apps__fab,[data-theme=dark] .floating-apps__toggler:focus-visible+.floating-apps__fab,[data-theme=dark] .floating-apps.is-open .floating-apps__toggler:hover+.floating-apps__fab,[data-theme=dark] .floating-apps.is-open .floating-apps__toggler:focus-visible+.floating-apps__fab{background:var(--accent-hover);border-color:transparent;color:#1a1a1d;box-shadow:0 10px 26px #0000006b}[data-theme=dark] .floating-apps__bubble--sous{background:var(--surface);border-color:var(--accent);color:var(--accent);box-shadow:0 8px 18px #0000004d}[data-theme=dark] .floating-apps__bubble--sous:hover,[data-theme=dark] .floating-apps__bubble--sous:focus-visible{background:var(--accent-muted);border-color:var(--accent);box-shadow:0 8px 18px #00000059}[data-theme=dark] .floating-apps__bubble--tori{box-shadow:0 8px 18px #0000004d}[data-theme=dark] .floating-apps__bubble--tori:hover,[data-theme=dark] .floating-apps__bubble--tori:focus-visible{background:var(--accent-muted);box-shadow:0 8px 18px #00000059}[data-theme=dark] .floating-apps__bubble-mark{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}[data-theme=dark] .floating-apps__bubble:after{background:#1a1a1df2;color:var(--text)}[data-theme=dark] .floating-apps__panel{background:var(--bg-elevated);border-color:var(--border);box-shadow:var(--shadow-lg)}[data-theme=dark] .floating-apps__panel-cta:not(.floating-apps__panel-cta--tori):not(.floating-apps__panel-cta--sous){background:var(--accent-muted);color:var(--text)}[data-theme=dark] .floating-apps__panel-cta--sous{background:var(--accent);color:#1a1a1d}[data-theme=dark] .floating-apps__panel-cta--sous:hover{background:var(--accent-hover);color:#1a1a1d}[data-theme=dark] .floating-apps__panel-cta--tori{background:#a9a9ff;color:#12121f}[data-theme=dark] .floating-apps__panel-cta--tori:hover{background:#dbdbff;color:#12121f}.safe-markdown{max-width:100%;min-width:0;overflow-wrap:break-word;word-break:normal}.safe-markdown>:first-child{margin-top:0}.safe-markdown>:last-child{margin-bottom:0}.safe-markdown p{margin:0 0 .5rem}.safe-markdown ul,.safe-markdown ol{margin:0 0 .5rem;padding-left:1.25rem}.safe-markdown li{margin-bottom:.2rem}.safe-markdown li>p{margin:0}.safe-markdown h1,.safe-markdown h2,.safe-markdown h3,.safe-markdown h4{margin:.5rem 0 .25rem;line-height:1.3;color:var(--text)}.safe-markdown h1{font-size:1.15rem}.safe-markdown h2{font-size:1.05rem}.safe-markdown h3,.safe-markdown h4{font-size:.98rem}.safe-markdown blockquote{margin:0 0 .5rem;padding:.25rem .5rem;border-left:3px solid var(--accent);background:var(--bg-elevated);border-radius:0 6px 6px 0;color:var(--text-muted)}.safe-markdown hr{border:none;border-top:1px solid var(--border);margin:.5rem 0}.safe-markdown code{font-size:.88em;background:var(--bg-elevated);padding:.1rem .35rem;border-radius:4px}.safe-markdown pre{margin:0 0 .5rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);overflow-x:auto;max-width:100%}.safe-markdown pre code{background:none;padding:0}.safe-markdown table{width:100%;max-width:100%;border-collapse:collapse;table-layout:fixed;margin:0 0 .5rem}.safe-markdown table table{font-size:.92em;margin:.35em 0 0}.safe-markdown th,.safe-markdown td{padding:.45em .6em;text-align:start;vertical-align:top;border-bottom:1px solid var(--border);overflow-wrap:anywhere;word-break:normal;white-space:normal;-webkit-hyphens:auto;hyphens:auto}.safe-markdown th{font-weight:700;color:var(--text)}.safe-markdown tr:last-child th,.safe-markdown tr:last-child td{border-bottom:none}.safe-markdown a{color:var(--link);overflow-wrap:anywhere}.sous-chat{display:flex;flex-direction:column;min-height:0;flex:1}.sous-chat__toolbar{display:flex;justify-content:flex-end;flex-shrink:0;padding:.25rem 1rem;border-bottom:1px solid var(--border);background:var(--surface)}.sous-chat__clear{display:inline-flex;align-items:center;gap:.25rem;min-height:44px;padding:0 .5rem;border:none;border-radius:6px;background:transparent;color:var(--text-muted);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:color .3s ease,background-color .3s ease}.sous-chat__clear svg{display:block;width:1rem;height:1rem}.sous-chat__clear:hover:not(:disabled){color:var(--text);background:var(--surface-hover)}.sous-chat__clear:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sous-chat__clear:disabled{opacity:.65;cursor:not-allowed}.sous-chat__thread{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:1rem;padding:1rem}.sous-chat__welcome{margin:auto 0;display:flex;flex-direction:column;align-items:stretch;gap:.5rem;padding:.5rem 0;width:min(28rem,100%);align-self:center}.sous-chat__welcome-icon{display:grid;place-items:center;align-self:flex-start;width:3rem;height:3rem;margin-bottom:.25rem;border-radius:9999px;background:var(--accent-muted);color:var(--accent)}.sous-chat__welcome-icon svg{width:1.5rem;height:1.5rem}.sous-chat__welcome-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--text)}.sous-chat__welcome-copy{margin:0 0 .5rem;color:var(--text-muted);font-size:.95rem;line-height:1.45}.sous-chat__suggestions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.sous-chat__suggestion{width:100%;min-height:44px;padding:1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;line-height:1.4;text-align:left;cursor:pointer;transition:background-color .3s ease,border-color .3s ease}.sous-chat__suggestion:hover:not(:disabled){background:var(--accent-muted);border-color:var(--accent)}.sous-chat__suggestion:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sous-chat__suggestion:disabled{opacity:.65;cursor:not-allowed}.sous-chat__status{margin:0;color:var(--text-muted);font-size:.95rem;line-height:1.45;display:flex;align-items:center;gap:.5rem}.sous-chat__dots{display:inline-flex;gap:.2rem}.sous-chat__dots span{width:.4rem;height:.4rem;border-radius:9999px;background:var(--text-muted);opacity:.35;animation:sous-dot 1.2s ease-in-out infinite}.sous-chat__dots span:nth-child(2){animation-delay:.15s}.sous-chat__dots span:nth-child(3){animation-delay:.3s}@keyframes sous-dot{0%,80%,to{opacity:.35}40%{opacity:1}}.sous-chat__turn{display:flex;flex-direction:column;gap:.25rem;max-width:92%;min-width:0}.sous-chat__turn--user{align-self:flex-end;align-items:flex-end}.sous-chat__turn--assistant{align-self:flex-start;max-width:min(100%,42rem)}.sous-chat__role{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.sous-chat__body{margin:0;padding:.5rem 1rem;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:.95rem;line-height:1.5;max-width:100%;min-width:0;overflow-x:clip;overflow-wrap:break-word}.sous-chat__body .safe-markdown{font-size:inherit;line-height:inherit}.sous-chat__body--plain{background:var(--accent-muted);border-color:transparent;white-space:pre-wrap}.sous-chat__confirm{width:100%;max-width:100%;min-width:0;margin-top:.25rem;padding:1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated)}.sous-chat__confirm-title,.sous-chat__confirm-done{margin:0 0 .5rem;font-size:.9rem;font-weight:600;color:var(--text)}.sous-chat__confirm-done{margin-bottom:0;font-weight:500}.sous-chat__confirm-done a{color:var(--link);font-weight:600}.sous-chat__confirm-done a:hover{color:var(--link-hover)}.sous-chat__confirm-items{margin:0 0 1rem;padding-left:1.2rem;color:var(--text);font-size:.9rem;line-height:1.45}.sous-chat__confirm-items li+li{margin-top:.25rem}.sous-chat__confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.sous-chat__confirm-dismiss,.sous-chat__confirm-add{min-height:44px;padding:.5rem 1rem;border-radius:10px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,opacity .3s ease,border-color .3s ease}.sous-chat__confirm-dismiss:disabled,.sous-chat__confirm-add:disabled{opacity:.65;cursor:not-allowed}.sous-chat__confirm-dismiss{border:1px solid var(--border);background:var(--surface);color:var(--text)}.sous-chat__confirm-dismiss:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.sous-chat__confirm-add{border:none;background:var(--accent);color:#fff}.sous-chat__confirm-add:hover:not(:disabled){background:var(--accent-hover);color:#fff}.sous-chat__error{margin:0;padding:.5rem 1rem;border-radius:10px;background:var(--error-muted);color:var(--error);font-size:.9rem;line-height:1.45}.sous-chat__composer{display:flex;flex-direction:column;flex-shrink:0;gap:.25rem;padding:1rem;border-top:1px solid var(--border);background:var(--surface)}.sous-chat__label{font-size:.8rem;font-weight:600;color:var(--text-muted)}.sous-chat__compose-row{display:flex;align-items:flex-end;gap:.5rem}.sous-chat__input{flex:1;width:100%;min-height:3.5rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);color:var(--text);font:inherit;resize:none}.sous-chat__input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.sous-chat__input:disabled{opacity:.7}.sous-chat__send,.sous-chat__mic{flex-shrink:0;min-height:44px;min-width:44px;padding:.5rem 1rem;border:none;border-radius:10px;font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .3s ease,opacity .3s ease,border-color .3s ease,color .3s ease}.sous-chat__send:disabled,.sous-chat__mic:disabled{opacity:.65;cursor:not-allowed}.sous-chat__mic{padding:0;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}.sous-chat__mic:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.sous-chat__mic:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sous-chat__mic--listening{border-color:var(--accent);background:var(--accent-muted);color:var(--accent)}.sous-chat__mic svg{display:block}.sous-chat__send{background:var(--accent);color:#fff}.sous-chat__send:hover:not(:disabled){background:var(--accent-hover);color:#fff}.sous-chat__send--stop{background:var(--error)}.sous-chat__send--stop:hover:not(:disabled){background:var(--error);color:#fff;opacity:.9}.sous-chat--widget .sous-chat__thread{min-height:0;padding:.5rem 1rem}.sous-chat--widget .sous-chat__welcome{width:100%;padding-top:1rem}.sous-chat--widget .sous-chat__welcome-title{font-size:1.05rem}.sous-chat--widget .sous-chat__welcome-copy,.sous-chat--widget .sous-chat__suggestion{font-size:.85rem}.sous-chat--widget .sous-chat__composer{padding:.5rem 1rem}.sous-chat--widget .sous-chat__toolbar{padding:0 .5rem}.sous-chat--widget .sous-chat__clear{font-size:.75rem}.sous-chat--widget .sous-chat__body{font-size:.9rem}.sous-chat--widget .sous-chat__input{min-height:2.75rem}.sous-chat--widget .sous-chat__send,.sous-chat--widget .sous-chat__mic{border-radius:9999px;padding:0}.sous-widget{position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:calc(56px + 1rem + max(1rem,env(safe-area-inset-bottom,0px)));z-index:34;display:flex;flex-direction:column;width:min(22.5rem,100vw - 1.5rem);height:min(34rem,100dvh - 8.5rem);border:1px solid var(--border);border-radius:14px;background:var(--bg-elevated);box-shadow:var(--shadow-lg);overflow:hidden}@media(min-width:641px){.sous-widget{right:max(1.5rem,env(safe-area-inset-right,0px));bottom:calc(56px + 1rem + max(1.5rem,env(safe-area-inset-bottom,0px)))}}.sous-widget__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--surface)}.sous-widget__brand{display:flex;align-items:center;gap:.5rem;min-width:0}.sous-widget__brand h2{margin:0;font-size:1rem;color:var(--text)}.sous-widget__brand p{margin:0;font-size:.75rem;color:var(--text-muted)}.sous-widget__icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex-shrink:0;border-radius:9999px;background:var(--accent-muted);color:var(--accent)}.sous-widget__icon svg{width:1.15rem;height:1.15rem}.sous-widget__close{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;padding:0;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .3s ease,color .3s ease,border-color .3s ease}.sous-widget__close:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.sous-widget__close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sous-widget__guest{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem 1rem;text-align:center}.sous-widget__guest p:first-child{margin:0;font-weight:600;color:var(--text)}.sous-widget__guest p:nth-child(2){margin:0;max-width:18em;font-size:.85rem;line-height:1.4;color:var(--text-muted)}.sous-widget__cta{margin-top:.5rem;min-height:44px;padding:.5rem 1.5rem;border:none;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}.sous-widget__cta:hover{background:var(--accent-hover);color:#fff}.sous-widget__footer{padding:.5rem 1rem;border-top:1px solid var(--border)}.sous-widget__full{display:inline-flex;min-height:0;padding:.25rem 0;align-items:center;font-size:.85rem;font-weight:600;color:var(--accent);text-decoration:none}.sous-widget__full:hover{color:var(--accent-hover)}.sous-widget .sous-chat{flex:1;min-height:0}.skip-nav{position:fixed;inset-block-start:0;inset-inline-start:0;padding:.75rem 1.25rem;background:var(--accent);color:#fff;font-weight:600;z-index:100;transform:translateY(-100%);transition:transform .3s}.skip-nav:focus{transform:translateY(0);outline:2px solid white;outline-offset:2px}.app-sidebar{position:relative;z-index:1;flex-shrink:0;padding:1rem;border-inline-end:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;justify-content:space-between;transition:width .3s,padding .3s,margin .3s,transform .3s;overflow:hidden}.app-sidebar--collapsed{width:60px;padding:.5rem .25rem;margin:.5rem;margin-inline-end:0;border-inline-end:none;border-radius:14px;box-shadow:var(--shadow);background:var(--surface)}.app-sidebar--expanded{width:240px}@media(max-width:1110px){.app-sidebar.app-sidebar--overlay{display:flex!important;position:fixed;top:0;left:0;bottom:0;width:240px;max-width:85vw;z-index:201;transform:translate(-100%);transition:transform .3s ease;margin:0;padding:1rem;border-radius:0;border-inline-end:1px solid var(--border);box-shadow:none;background:var(--bg-elevated)}.app-sidebar.app-sidebar--overlay .sidebar-brand,.app-sidebar.app-sidebar--overlay .sidebar-section__label,.app-sidebar.app-sidebar--overlay .sidebar-link__label,.app-sidebar.app-sidebar--overlay .sidebar-footer__info{display:flex!important}.app-sidebar.app-sidebar--overlay .sidebar-brand .sidebar-brand__text{display:inline!important}.app-sidebar.app-sidebar--overlay .sidebar-link{width:auto;margin:0 8px .25rem;padding:12px 16px;justify-content:flex-start}.app-sidebar.app-sidebar--overlay .sidebar-actions__grid{grid-template-columns:repeat(2,1fr);max-width:none;margin:0 8px}.app-sidebar.app-sidebar--overlay .sidebar-btn span:not(.sidebar-btn__icon){display:inline!important}.app-sidebar.app-sidebar--overlay .sidebar-footer__card{justify-content:space-between}.app-sidebar.app-sidebar--overlay .sidebar-footer__user{flex-direction:row;flex:1}}@media(max-width:1110px){.app-sidebar.app-sidebar--overlay-open{transform:translate(0);box-shadow:4px 0 20px #00000026}}@media(min-width:1111px){.app-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:2;margin:0}}.app-drawer-backdrop{position:fixed;inset:0;z-index:200;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none;cursor:pointer;animation:fade-in .2s ease}.app-drawer-backdrop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.main-container{flex:1;min-height:0;display:flex;flex-direction:column;background-color:var(--bg);overflow:hidden;transition:margin-left .3s}.main-container.main-container--desktop-expanded{margin-left:240px}.main-container.main-container--desktop-collapsed,.main-container.main-container--tablet{margin-left:60px}.main-container.main-container--mobile{margin-left:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block-end:1rem;margin-block-end:.5rem;border-block-end:1px solid var(--border)}.app-sidebar--collapsed .sidebar-header{justify-content:center;padding-block-end:.5rem;margin-block-end:.5rem}.sidebar-brand{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;color:var(--text);text-decoration:none;transition:color .3s}.sidebar-brand:hover{color:var(--accent)}.sidebar-brand__logo{flex-shrink:0;width:28px;height:28px;object-fit:contain}.sidebar-brand__logo--white{display:none}.sidebar-brand__logo--charcoal,[data-theme=dark] .sidebar-brand__logo--white{display:block}[data-theme=dark] .sidebar-brand__logo--charcoal{display:none}.sidebar-brand__text{flex-shrink:0}.sidebar-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text-muted);cursor:pointer;transition:color .3s,background-color .3s,border-color .3s}.sidebar-toggle:hover{color:var(--text);background:var(--surface-hover);border-color:var(--border-hover)}.sidebar-toggle svg{display:block;width:20px;height:20px}.sidebar-toggle.sidebar-toggle--open svg{width:26px;height:26px}.sidebar-section{flex-grow:0}.sidebar-section__label{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:.5rem 1rem;margin-block-end:.25rem}.sidebar-section--secondary{margin-block-start:auto;padding-block-start:1rem;border-block-start:1px solid var(--border)}.app-sidebar--collapsed .sidebar-section--secondary{padding-block-start:.5rem;border-block-start-color:transparent}.app-sidebar--collapsed .sidebar-section .sidebar-list{display:flex;flex-direction:column;align-items:center}.sidebar-nav-wrap{flex-grow:1;padding-block-start:12px;overflow-y:auto;min-height:0}.sidebar-spacer{flex:1;min-height:1rem}.sidebar-list{list-style:none;margin:0;padding:0}.sidebar-link{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;margin:0 8px .25rem;color:var(--text);font-size:14px;font-weight:500;text-decoration:none;min-height:44px;border-inline-start:3px solid transparent;transition:color .3s,background-color .3s,border-color .3s}.app-sidebar--collapsed .sidebar-link{justify-content:center;padding:0;margin:0 auto .5rem;width:44px;height:44px;min-height:44px;box-sizing:border-box;border-inline-start-width:0}.app-sidebar--collapsed .sidebar-link:last-child{margin-bottom:0}.sidebar-link:hover{background:var(--surface-hover);color:var(--text)}.sidebar-link.active{background:var(--accent-muted);color:var(--accent);border-inline-start-color:var(--accent)}.app-sidebar--collapsed .sidebar-link.active{background:var(--accent);color:#fff;border-inline-start-color:transparent}.sidebar-link__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;line-height:0}.sidebar-link__icon svg{display:block;width:20px;height:20px}.app-sidebar--collapsed .sidebar-link__icon{width:20px;height:20px}.sidebar-link__label{overflow:hidden}.sidebar-actions{margin-block-end:1rem}.sidebar-actions__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:0 8px}.app-sidebar--collapsed .sidebar-actions__grid{grid-template-columns:1fr;align-items:center;margin:0 auto;max-width:44px}.sidebar-btn{display:flex;align-items:center;justify-content:center;gap:.25rem;min-height:44px;padding:12px 16px;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .3s,background-color .3s,border-color .3s,color .3s}.app-sidebar--collapsed .sidebar-btn{width:44px;height:44px;padding:0;box-sizing:border-box}.app-sidebar--collapsed .sidebar-btn svg{display:block;width:20px;height:20px}.sidebar-btn__icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;line-height:0}.sidebar-btn__icon svg{display:block}.sidebar-btn--primary{background:transparent;border:1px solid var(--accent);color:var(--accent)}.sidebar-btn--primary:hover{background:var(--accent-muted);border-color:var(--accent-hover);color:var(--accent-hover)}.sidebar-btn--signout{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.sidebar-btn--signout:hover{background:var(--surface-hover);border-color:var(--error);color:var(--error)}.sidebar-btn--danger{background:var(--error-muted);border:1px solid var(--error);color:var(--error)}.sidebar-btn--danger:hover{opacity:.9}.sidebar-btn--theme{background:var(--surface);border:1px solid var(--border);color:var(--link)}[data-theme=dark] .sidebar-btn--theme{color:var(--text-muted)}.sidebar-btn--theme:hover{background:var(--surface-hover);border-color:var(--link);color:var(--link-hover)}[data-theme=dark] .sidebar-btn--theme:hover{border-color:var(--accent);color:var(--accent)}.sidebar-footer{padding:16px;margin-block-end:0;margin-block-start:auto;border-block-start:1px solid var(--border);transition:padding .3s}.app-sidebar--collapsed .sidebar-footer{padding:12px 8px}.sidebar-footer__card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-sidebar--collapsed .sidebar-footer__card{justify-content:center;align-items:center}.sidebar-footer__user{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.app-sidebar--collapsed .sidebar-footer__user{flex-direction:column;flex:none;justify-content:center;align-items:center}.sidebar-footer__avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--accent-muted);color:var(--accent);border:2px solid var(--border)}.sidebar-footer__info{display:flex;flex-direction:column;min-width:0;overflow:hidden;line-height:1.25}.sidebar-footer__welcome{font-size:12px;color:var(--text-muted);font-weight:400}.sidebar-footer__name{font-size:14px;font-weight:600;color:var(--text)}.sidebar-footer__role{font-size:12px;color:var(--text-muted)}.app-layout{display:flex;height:100vh;height:100dvh;flex-direction:column;background-color:var(--bg);overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column;min-height:0;background-color:var(--bg);overflow:hidden}.app-content{flex:1;padding:2rem;overflow:auto;overflow-x:hidden;background-color:var(--bg);min-width:0;min-height:0;-webkit-overflow-scrolling:touch}@media(max-width:640px){.app-content{padding:1.5rem}}@media(max-width:480px){.app-content{padding:1rem}}.app-content:has(.sous-page){overflow:hidden;overscroll-behavior:none;display:flex;flex-direction:column;padding-block:.5rem}@media(max-width:640px){.app-content:has(.sous-page){padding-block:.25rem}}article{max-width:900px}h1{font-size:2rem;font-weight:700;color:var(--text);margin:0 0 1rem}.home-intro{font-size:1.1rem;color:var(--text-muted);line-height:1.6;margin:0 0 2rem}.home-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem}.home-card{display:flex;flex-direction:column;gap:.5rem;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;color:var(--text);text-decoration:none;transition:border-color .3s,background-color .3s}.home-card:hover{border-color:var(--accent);background:var(--bg-elevated)}.home-card__icon{display:flex;color:var(--accent)}.home-card__icon svg{width:2rem;height:2rem}.home-card__title{font-size:1.2rem;font-weight:600;margin:0;color:var(--text)}.home-card__desc{font-size:.9rem;color:var(--text-muted);margin:0;line-height:1.5}.home-activity{margin-bottom:2rem;padding:1.5rem;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.home-activity__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.home-activity__title{display:flex;align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:1.1rem;font-weight:600;color:var(--text)}.home-activity__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:#e53935;color:#fff;font-size:.72rem;font-weight:700}.home-activity__subtitle{margin:0;font-size:.88rem;color:var(--text-muted)}.home-activity__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.home-activity__mark-read,.home-activity__link{font:inherit;font-size:.82rem;font-weight:600;text-decoration:none;border-radius:6px;padding:.35rem .65rem}.home-activity__mark-read{border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer}.home-activity__link{color:var(--accent);border:1px solid var(--accent-muted);background:var(--accent-muted)}.home-activity__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.home-activity__item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border-radius:10px;background:var(--bg-elevated);border:1px solid transparent}.home-activity__item--unread{border-color:color-mix(in srgb,var(--accent) 25%,var(--border));background:color-mix(in srgb,var(--accent-muted) 35%,var(--bg-elevated))}.home-activity__item-text{margin:0;font-size:.9rem;color:var(--text);line-height:1.45}.home-activity__item-text a{color:var(--accent);text-decoration:none}.home-activity__item-text a:hover{text-decoration:underline}.home-activity__item-time{flex-shrink:0;font-size:.78rem;color:var(--text-muted)}.converter-nav{display:flex;gap:.25rem;margin-block-end:1.5rem;border-block-end:1px solid var(--border)}.converter-nav__link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:10px 10px 0 0;color:var(--text-muted);font-size:1rem;font-weight:500;text-decoration:none;transition:color .3s,background .3s}.converter-nav__link:hover{color:var(--text);background:var(--surface-hover)}.converter-nav__link--active{color:var(--accent);background:var(--bg-elevated);border-block-end:2px solid var(--bg-elevated);margin-block-end:-1px}.converter-nav__icon{display:flex;align-items:center;justify-content:center}.converter-nav__icon svg{width:20px;height:20px}.converter-layout{display:flex;flex-direction:column;gap:0;width:100%}.file-converter{display:flex;flex-direction:column;gap:2rem;padding:1.5rem;max-width:1100px;width:100%;color:var(--text)}.file-converter__header{display:flex;flex-direction:column;gap:.4rem}.file-converter__header-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.file-converter__badge{display:inline-flex;padding:.2rem .65rem;border-radius:9999px;font-size:.7rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.file-converter__capabilities-link{color:var(--link);text-decoration:none;font-weight:500}.file-converter__capabilities-link:hover{color:var(--link-hover);text-decoration:underline}.file-converter__title{font-size:1.75rem;font-weight:600;color:var(--text);letter-spacing:-.02em;margin:0}.file-converter__subtitle{font-size:.9rem;color:var(--text-muted);margin:0}.file-converter__workspace{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}@media(max-width:768px){.file-converter__workspace{grid-template-columns:1fr}}.file-converter__left,.file-converter__right{display:flex;flex-direction:column;gap:.75rem}.dropzone{border:2px dashed var(--border);border-radius:10px;background:var(--surface);min-height:220px;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;transition:border-color .3s,background-color .3s}.dropzone:hover{border-color:var(--accent);background:var(--surface-hover)}.dropzone:focus{outline:2px solid var(--accent);outline-offset:2px}.dropzone--dragging{border-color:var(--accent);border-style:solid;background:var(--bg-elevated)}.dropzone--filled{border-style:solid;border-color:var(--border)}.dropzone__input{position:absolute;width:0;height:0;overflow:hidden}.dropzone__empty{display:flex;flex-direction:column;align-items:center;gap:.6rem;color:var(--text-muted);padding:2rem;text-align:center}.dropzone__empty svg{color:var(--text-muted)}.dropzone__label{font-size:.95rem;color:var(--text);font-weight:500}.dropzone__hint{font-size:.8rem;color:var(--text-muted)}.dropzone__filled{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;width:100%;text-align:center}.dropzone__badge{background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.08em;padding:.25rem .6rem;border-radius:6px}.dropzone__filename{font-size:.9rem;color:var(--text);word-break:break-all;max-width:100%}.dropzone__size{font-size:.75rem;color:var(--text-muted)}.dropzone__change{margin-top:.5rem;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8rem;font-family:inherit;padding:.35rem .85rem;cursor:pointer;transition:border-color .3s,color .3s}.dropzone__change:hover{border-color:var(--accent);color:var(--accent)}.file-info{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted)}.file-info__label{text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.file-info__value{color:var(--accent);font-weight:600}.file-info__sep{opacity:.5}.file-info__mime{font-size:.7rem}.format-empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;justify-content:center;min-height:220px;border:2px dashed var(--border);border-radius:10px;color:var(--text-muted);font-size:.85rem;text-align:center;padding:2rem}.format-empty__link{color:var(--link);font-weight:500;text-decoration:none}.format-empty__link:hover{color:var(--link-hover);text-decoration:underline}.format-panel{background:var(--surface);border-radius:10px;border:1px solid var(--border);overflow:hidden}.format-panel__header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid var(--border);gap:1rem}.format-panel__title{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap}.format-search{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:inherit;font-size:.8rem;padding:.35rem .7rem;width:160px;transition:border-color .3s}.format-search::placeholder{color:var(--text-muted)}.format-search:focus{border-color:var(--accent);outline:none}.format-grid{display:flex;flex-direction:column;gap:0;max-height:280px;overflow-y:auto}.format-grid::-webkit-scrollbar{width:6px}.format-grid::-webkit-scrollbar-track{background:transparent}.format-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.format-group{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.format-group:last-child{border-bottom:none}.format-group__label{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.5rem}.format-group__options{display:flex;flex-wrap:wrap;gap:.4rem}.format-chip{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:inherit;font-size:.75rem;font-weight:500;letter-spacing:.04em;padding:.35rem .7rem;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s}.format-chip:hover{border-color:var(--accent);color:var(--accent)}.format-chip--selected{background:var(--accent);border-color:var(--accent);color:#fff}.format-chip--selected:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.convert-actions{display:flex;flex-direction:column;gap:.75rem}.conversion-summary{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--text)}.conversion-summary__from,.conversion-summary__to{font-weight:700}.conversion-summary__to{color:var(--accent)}.conversion-summary svg{color:var(--text-muted);flex-shrink:0}.convert-btn{background:var(--accent);border:none;border-radius:10px;color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;padding:.75rem 1.5rem;cursor:pointer;width:100%;transition:background-color .3s,opacity .3s}.convert-btn:hover:not(:disabled){background:var(--accent-hover)}.convert-btn:disabled{opacity:.5;cursor:not-allowed}.progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress-bar__fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.convert-error{font-size:.85rem;color:var(--error);padding:.7rem .9rem;background:var(--error-muted);border:1px solid var(--error);border-radius:6px}.download-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--success-muted);border:1px solid var(--success);border-radius:10px;color:var(--success);font-family:inherit;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;cursor:pointer;width:100%;word-break:break-all;transition:background-color .3s,opacity .3s}.download-btn:hover{opacity:.9}.uc{display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem 1.5rem 2rem;max-width:1100px;width:100%;margin-inline:auto}.uc__header{text-align:center}.uc__title{font-size:1.75rem;font-weight:700;color:var(--text);letter-spacing:-.03em;margin:0 0 .4rem}.uc__tagline{font-size:1rem;color:var(--text-muted);margin:0;line-height:1.5;max-width:28rem;margin-inline:auto}.uc__panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.25rem;box-shadow:var(--shadow)}.uc__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:1.25rem;align-items:start;margin-block-start:1.75rem;padding-block-start:1.75rem;border-block-start:1px solid var(--border)}@media(max-width:900px){.uc__layout{grid-template-columns:1fr}}.uc__main{min-width:0}.uc__sidebar{display:flex;flex-direction:column;gap:1rem;min-width:0;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}@media(max-width:900px){.uc__sidebar{position:static;max-height:none}}.uc__sidebar-title{margin:0 0 .25rem;font-size:.875rem;font-weight:700;color:var(--text)}.uc__sidebar-desc{margin:0 0 .65rem;font-size:.78rem;color:var(--text-muted);line-height:1.4}.uc__ref-table-wrap{padding:.85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated)}.uc__ref-table-scroll{max-height:220px;overflow-y:auto;border-radius:6px;border:1px solid var(--border)}.uc__ref-table{width:100%;border-collapse:collapse;font-size:.78rem}.uc__ref-table th{position:sticky;top:0;padding:.45rem .5rem;text-align:left;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--surface);border-block-end:1px solid var(--border)}.uc__ref-table td{padding:.4rem .5rem;border-block-end:1px solid var(--border);vertical-align:middle}.uc__ref-table tbody tr:last-child td{border-block-end:none}.uc__ref-table tbody tr:hover{background:var(--surface-hover)}.uc__ref-row-btn{padding:0;border:none;background:none;color:var(--text);font:inherit;font-weight:500;cursor:pointer;text-align:left}.uc__ref-row-btn:hover{color:var(--accent);text-decoration:underline}.uc__ref-eq{color:var(--text-muted);text-align:center;width:1.25rem;padding-inline:.15rem!important}.uc__ref-value{font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.uc__ref-unit{color:var(--text-muted);white-space:nowrap}.uc__sidebar-tools{padding:.85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated)}.uc__sidebar-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-block-end:.75rem}.uc__sidebar-tab{padding:.4rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .3s}.uc__sidebar-tab--active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.uc__sidebar-tab:hover:not(.uc__sidebar-tab--active){border-color:var(--border-hover);color:var(--text)}.uc__sidebar-panel{min-height:120px}.uc__amount-formats{display:flex;flex-wrap:wrap;gap:.35rem;margin-block-start:.35rem}.uc__format-chip{padding:.25rem .55rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .3s}.uc__format-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.uc__input--invalid{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.uc__input-error{margin:.35rem 0 0;font-size:.78rem;color:var(--accent);line-height:1.35}.uc__step+.uc__step{margin-block-start:1.75rem;padding-block-start:1.75rem;border-block-start:1px solid var(--border)}.uc__step-head{display:flex;gap:.85rem;align-items:flex-start;margin-block-end:1rem}.uc__step-num{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--accent-muted);color:var(--accent);font-size:.8125rem;font-weight:700;flex-shrink:0;margin-block-start:.1rem}.uc__step-title{margin:0 0 .2rem;font-size:1.05rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.uc__step-desc{margin:0;font-size:.875rem;color:var(--text-muted);line-height:1.45}.uc__categories{display:flex;flex-wrap:wrap;gap:.5rem}.uc__categories--primary .uc__cat{flex:1 1 calc(33.333% - .35rem);min-width:5.5rem;justify-content:center;padding:.75rem .65rem;font-size:.875rem}.uc__categories--more{margin-block-start:.65rem;padding-block-start:.65rem;border-block-start:1px dashed var(--border)}.uc__expand-cats{display:block;width:100%;margin-block-start:.65rem;padding:.55rem .75rem;border:1px dashed var(--border);border-radius:10px;background:transparent;color:var(--text-muted);font-size:.8125rem;cursor:pointer;text-align:center;transition:all .3s}.uc__expand-cats:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.uc__cat{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .3s;white-space:nowrap}.uc__cat:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.uc__cat--active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);font-weight:600}.uc__cat-icon{width:16px;height:16px;flex-shrink:0}.uc__system{display:flex;flex-direction:column;gap:.5rem;margin-block-end:1rem;padding:.75rem;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border)}.uc__system-label{font-size:.8125rem;font-weight:600;color:var(--text)}.uc__system-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.2rem;border-radius:10px;background:var(--surface);border:1px solid var(--border)}.uc__system-btn{padding:.55rem .65rem;border:none;border-radius:6px;background:transparent;color:var(--text-muted);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .3s}.uc__system-btn--active{background:var(--accent-muted);color:var(--accent)}.uc__converter-card{display:flex;flex-direction:column;gap:.85rem;padding:1rem;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border)}.uc__field{display:flex;flex-direction:column;gap:.35rem}.uc__field-label{font-size:.8125rem;font-weight:600;color:var(--text)}.uc__input,.uc__select{padding:.85rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.0625rem;font-weight:500;transition:border-color .3s,box-shadow .3s}.uc__input:focus,.uc__select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.uc__input--hero{font-size:1.5rem;font-weight:600;padding:1rem 1.1rem}.uc__select--full{width:100%;cursor:pointer}.uc__units-row{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;align-items:end}.uc__field--unit{min-width:0}.uc__swap-icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin-block-end:.35rem;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:all .3s}.uc__swap-icon svg{width:18px;height:18px;transition:transform .35s cubic-bezier(.34,1.2,.64,1)}.uc__swap-icon:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.uc__result-block{display:flex;flex-direction:column;gap:.75rem;padding:1.15rem 1.25rem;border-radius:14px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent-muted) 85%,var(--surface)) 0%,var(--surface) 100%);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));min-height:6.5rem;justify-content:center;transition:border-color .3s,box-shadow .3s}.uc__result-block--filled{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}.uc__result-block--stale{border-style:dashed;background:var(--bg-elevated)}.uc__result-head{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center}.uc__result-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.uc__result-summary{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.uc__output{display:block;width:100%}.uc__result-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .65rem;animation:uc-result-in .25s ease-out}.uc__result-number{font-size:clamp(2.25rem,8vw,3rem);font-weight:700;color:var(--accent);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}.uc__result-unit-pill{display:inline-flex;align-items:center;padding:.35rem .85rem;border-radius:999px;background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));font-size:1rem;font-weight:600;color:var(--accent);box-shadow:0 1px 2px #0000000a}.uc__result-empty{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center;padding-block:.25rem}.uc__output-value{display:inline-block;animation:uc-result-in .2s ease-out}@keyframes uc-result-in{0%{opacity:.4;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.uc__placeholder{font-size:.9375rem;font-weight:500;color:var(--text-muted);line-height:1.45;max-width:16rem}.uc__empty-hint{margin:0;font-size:.78rem;color:var(--text-muted);line-height:1.4;opacity:.9}.uc__convert-btn{width:100%;padding:.85rem 1rem;border:none;border-radius:10px;background:var(--accent);color:var(--accent-text, #fff);font-size:.9375rem;font-weight:600;cursor:pointer;transition:opacity .3s}.uc__convert-btn:hover:not(:disabled){opacity:.92}.uc__convert-btn:disabled{opacity:.4;cursor:not-allowed}.uc__copy-btn{width:100%;padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .3s}.uc__copy-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.uc__copy-btn:disabled{opacity:.4;cursor:not-allowed}.uc__copy-btn--done{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.uc__examples{margin-block-start:1rem}.uc__examples-label{display:block;font-size:.8125rem;font-weight:600;color:var(--text-muted);margin-block-end:.45rem}.uc__quick-picks{display:flex;flex-wrap:wrap;gap:.4rem}.uc__chip{padding:.45rem .8rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .3s}.uc__chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.uc__chip--fav,.uc__chip--recent{font-size:.75rem;padding:.35rem .65rem}.uc__data-note{margin:1rem 0 0;padding:.65rem .85rem;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border);font-size:.8125rem;color:var(--text-muted);line-height:1.45}.uc__help-text{margin:0 0 .75rem;font-size:.875rem;color:var(--text-muted);line-height:1.45}.uc__help-text--tight{margin-block-end:.5rem}.uc__more{margin-block-start:1.75rem;padding-block-start:1.75rem;border-block-start:1px solid var(--border)}.uc__more-trigger{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);cursor:pointer;text-align:left;transition:all .3s}.uc__more-trigger:hover{border-color:var(--accent);background:var(--accent-muted)}.uc__more-trigger-text{display:flex;flex-direction:column;gap:.15rem}.uc__more-trigger-title{font-size:.9375rem;font-weight:700;color:var(--text)}.uc__more-trigger-desc{font-size:.8125rem;color:var(--text-muted);line-height:1.35}.uc__more-body{margin-block-start:.85rem;display:flex;flex-direction:column;gap:.85rem}.uc__more-menu{display:flex;flex-direction:column;gap:.35rem}.uc__more-item{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.75rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;transition:all .3s}.uc__more-item:hover{border-color:var(--border-hover);background:var(--surface-hover)}.uc__more-item--active{border-color:var(--accent);background:var(--accent-muted)}.uc__more-item-title{font-size:.875rem;font-weight:600;color:var(--text)}.uc__more-item-desc{font-size:.78rem;color:var(--text-muted);line-height:1.35}.uc__chevron{width:18px;height:18px;color:var(--text-muted);flex-shrink:0;transition:transform .3s}.uc__chevron--open{transform:rotate(180deg)}.uc__section{margin-block-start:0;padding-block-start:0;border-block-start:none}.uc__section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;border:none;background:none;color:var(--text);font-size:.9375rem;font-weight:600;cursor:pointer;text-align:left}.uc__section-toggle:hover{color:var(--accent)}.uc__reference-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.uc__reference-list li{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .75rem;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border)}.uc__reference-label{font-size:.8125rem;font-weight:600;color:var(--text)}.uc__reference-detail{font-size:.78rem;color:var(--text-muted)}.uc__reference-footer{margin:.75rem 0 0;font-size:.78rem;color:var(--text-muted)}.uc__reference-footer a{color:var(--accent);text-decoration:none}.uc__reference-footer a:hover{text-decoration:underline}.uc__multi{padding:.85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated)}.uc__multi--empty p{margin:0;font-size:.8125rem;color:var(--text-muted);line-height:1.45}.uc__multi-list{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem}.uc__multi-row{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem .55rem;border-radius:6px;font-size:.8125rem;font-variant-numeric:tabular-nums}.uc__multi-row--active{background:var(--accent-muted);color:var(--accent);font-weight:600}.uc__multi-row--active .uc__multi-unit{color:inherit}.uc__multi-unit{color:var(--text-muted);flex-shrink:0}.uc__multi-value{text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis}.uc__history{padding:.85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated)}.uc__save-btn{display:inline-flex;align-items:center;gap:.45rem;width:100%;justify-content:center;padding:.65rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-muted);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .3s}.uc__save-btn svg{width:16px;height:16px}.uc__save-btn:hover,.uc__save-btn--active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.uc__history-save{margin-block-end:.75rem}.uc__history-group{margin-block-end:.65rem}.uc__history-group:last-child{margin-block-end:0}.uc__history-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-muted);margin-block-end:.35rem}.uc__history-chips{display:flex;flex-wrap:wrap;gap:.35rem}.uc__history-chip-wrap{display:inline-flex;align-items:center;gap:.15rem}.uc__history-remove{width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1}.uc__history-remove:hover{color:var(--accent);background:var(--accent-muted)}.uc__history-empty{margin:0;font-size:.8125rem;color:var(--text-muted);line-height:1.45}.uc__batch-results{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.uc__batch-results li{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;align-items:center;padding:.45rem .65rem;border-radius:6px;background:var(--surface);border:1px solid var(--border);font-size:.8125rem}.uc__batch-results li.uc__batch-row--error .uc__batch-out{color:var(--text-muted);font-weight:500}.uc__batch-in{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.uc__batch-arrow{color:var(--text-muted);font-size:.75rem}.uc__batch-out{font-weight:600;color:var(--accent);text-align:right;overflow:hidden;text-overflow:ellipsis}.uc__scale-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-block-end:.85rem}.uc__scale-mult{width:4.5rem;padding:.5rem .65rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;font-weight:600}.uc__scale-mult:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.uc__scale-hint{font-size:.8125rem;color:var(--text-muted)}.uc__scale-grid{display:grid;grid-template-columns:1fr;gap:.85rem}.uc__scale-col{display:flex;flex-direction:column;gap:.35rem;min-width:0}.uc__scale-textarea,.uc__scale-output{min-height:8rem;padding:.75rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-size:.875rem;line-height:1.5}.uc__scale-textarea{resize:vertical;color:var(--text);font-family:inherit}.uc__scale-textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.uc__scale-output ul{list-style:none;margin:0;padding:0}.uc__scale-output li{padding:.15rem 0}.uc__scale-empty{margin:0;color:var(--text-muted);font-size:.8125rem}@media(min-width:480px){.uc__scale-grid{grid-template-columns:1fr 1fr}}.tools-layout{display:flex;flex-direction:column;gap:0;width:100%}.tools-search{display:flex;flex-direction:column;gap:.5rem}.tools-search__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tools-search__field{position:relative}.tools-search__icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:1.125rem;height:1.125rem;color:var(--text-muted);pointer-events:none}.tools-search__input{width:100%;min-height:44px;padding:1rem 1rem 1rem 2.75rem;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:14px;transition:border-color .3s}.tools-search__input:focus{outline:none;border-color:var(--accent)}.tools-search__input::placeholder{color:var(--text-muted)}.tools-search__count{margin:0;font-size:.875rem;color:var(--text-muted)}.tool-card{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;min-height:44px;background:var(--surface);border:1px solid var(--border);border-radius:14px;color:var(--text);text-decoration:none;transition:border-color .3s,background-color .3s}.tool-card:hover{border-color:var(--accent);background:var(--bg-elevated)}.tool-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool-card--popular{padding:2rem 1.5rem}.tool-card__icon{display:flex;color:var(--accent)}.tool-card__icon svg{width:1.75rem;height:1.75rem}.tool-card__label{font-size:1rem;font-weight:600;line-height:1.3}.tool-card__desc{font-size:.875rem;color:var(--text-muted);line-height:1.45}.tool-card--popular .tool-card__icon svg{width:2rem;height:2rem}.tools-home{display:flex;flex-direction:column;gap:2rem;max-width:960px;width:100%}.tools-home__header{display:flex;flex-direction:column;gap:.5rem}.tools-home__title{margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:600;letter-spacing:-.02em;color:var(--text)}.tools-home__intro{margin:0;color:var(--text-muted);font-size:1rem;line-height:1.6;max-width:36rem}.tools-home__filters{display:flex;flex-wrap:wrap;gap:.5rem}.tools-home__chip{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9999px;cursor:pointer;transition:border-color .3s,background-color .3s}.tools-home__chip:hover{border-color:var(--accent)}.tools-home__chip--active{background:var(--bg-elevated);border-color:var(--accent);color:var(--accent);font-weight:600}.tools-home__section{display:flex;flex-direction:column;gap:1rem}.tools-home__section-title{margin:0;font-size:1.125rem;font-weight:600;color:var(--text)}.tools-home__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:1rem}.tools-home__grid--popular{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.tools-home__empty{margin:0;padding:2rem;text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:14px}.tools-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;font-size:.875rem}.tools-breadcrumb__item{color:var(--text-muted)}.tools-breadcrumb__item a{color:var(--text-muted);text-decoration:none}.tools-breadcrumb__item a:hover{color:var(--accent)}.tools-breadcrumb__item--current{color:var(--text);font-weight:500}.tool-switcher{position:relative}.tool-switcher__trigger{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:border-color .3s,background-color .3s}.tool-switcher__trigger svg{width:1rem;height:1rem;color:var(--text-muted)}.tool-switcher__trigger:hover{border-color:var(--accent);background:var(--bg-elevated)}.tool-switcher__panel{position:absolute;z-index:50;top:calc(100% + .5rem);right:0;width:min(22rem,100vw - 2rem);max-height:24rem;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 24px #0000001f}.tool-switcher__search{margin:1rem;min-height:44px;padding:.5rem 1rem;font-size:1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}.tool-switcher__search:focus{outline:none;border-color:var(--accent)}.tool-switcher__list{overflow-y:auto;padding:0 1rem 1rem}.tool-switcher__section-label{margin:.5rem 0 .25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.tool-switcher__items{margin:0;padding:0;list-style:none}.tool-switcher__item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;border-radius:10px;text-decoration:none;color:var(--text);transition:background-color .3s}.tool-switcher__item:hover{background:var(--surface-hover)}.tool-switcher__item--active{background:var(--surface);border:1px solid var(--border)}.tool-switcher__item-icon{display:flex;color:var(--accent);flex-shrink:0;padding-block-start:2px}.tool-switcher__item-icon svg{width:1.125rem;height:1.125rem}.tool-switcher__item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.tool-switcher__item-label{font-size:.9375rem;font-weight:500}.tool-switcher__item-desc{font-size:.8125rem;color:var(--text-muted);line-height:1.35}.tool-switcher__empty{margin:1rem 0;font-size:.875rem;color:var(--text-muted);text-align:center}@media(max-width:640px){.tool-switcher__panel{position:fixed;inset:auto 1rem 1rem;width:auto;max-height:70vh}}.step-indicator{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:1rem;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:14px}.step-indicator__step{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-muted)}.step-indicator__step--active{color:var(--text);font-weight:600}.step-indicator__step--active .step-indicator__num{background:var(--accent);color:var(--bg);border-color:var(--accent)}.step-indicator__step--done{color:var(--text)}.step-indicator__step--done .step-indicator__num{background:var(--bg-elevated);border-color:var(--accent);color:var(--accent)}.step-indicator__num{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:.75rem;font-weight:700;border:1px solid var(--border);border-radius:9999px;flex-shrink:0}.step-indicator__label{line-height:1.3}.step-indicator__arrow{margin-inline:.25rem;color:var(--text-muted);font-size:.75rem}@media(max-width:640px){.step-indicator__arrow{display:none}.step-indicator__step{flex:1 1 100%}}@media(prefers-reduced-motion:no-preference){.step-indicator__step--active .step-indicator__num{transition:background-color .3s,border-color .3s}}.related-tools{padding-block-start:1.5rem;border-block-start:1px solid var(--border)}.related-tools__heading{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:var(--text-muted)}.related-tools__list{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;list-style:none}.related-tools__list a{font-size:.9375rem;color:var(--accent);text-decoration:none}.related-tools__list a:hover{text-decoration:underline}.tool-page{display:flex;flex-direction:column;gap:1.5rem;max-width:900px;width:100%}.tool-page__toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.tool-page__header{display:flex;flex-direction:column;gap:.25rem}.tool-page__title{font-size:clamp(1.375rem,4vw,1.75rem);font-weight:600;color:var(--text);letter-spacing:-.02em;margin:0;line-height:1.2}.tool-page__desc{font-size:1rem;color:var(--text-muted);margin:0;line-height:1.5}.tool-page__body{display:flex;flex-direction:column;gap:1.5rem}.tool-page__action{display:flex;justify-content:flex-start}.tool-page__action-btn{min-height:44px;min-width:min(100%,20rem);padding:1rem 2rem;font-size:1rem;font-weight:600;color:var(--bg);background:var(--accent);border:none;border-radius:14px;cursor:pointer;transition:opacity .3s,transform .3s}.tool-page__action-btn:hover:not(:disabled){opacity:.92}.tool-page__action-btn:disabled{opacity:.45;cursor:not-allowed}.tool-page__action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool-page__error{color:var(--text-muted);font-size:1rem}@media(prefers-reduced-motion:no-preference){.tool-page__action-btn:active:not(:disabled){transform:scale(.98)}}.image-upload{display:flex;flex-direction:column;gap:.5rem}.image-drop{border:2px dashed var(--border);border-radius:10px;background:var(--surface);min-height:200px;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;transition:border-color .3s,background-color .3s}.image-drop:hover{border-color:var(--accent);background:var(--surface-hover)}.image-drop:focus{outline:2px solid var(--accent);outline-offset:2px}.image-drop--dragging{border-color:var(--accent);border-style:solid;background:var(--bg-elevated)}.image-drop--filled{border-style:solid;border-color:var(--border);cursor:default}.image-drop__input{position:absolute;width:0;height:0;overflow:hidden}.image-drop__empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-muted);padding:2rem;text-align:center}.image-drop__empty svg{color:var(--text-muted)}.image-drop__label{font-size:.95rem;color:var(--text);font-weight:500}.image-drop__hint{font-size:.8rem;color:var(--text-muted)}.image-drop__formats{font-size:.7rem;color:var(--text-muted);opacity:.7}.image-drop__loading{color:var(--text-muted);font-size:.9rem;padding:2rem}.image-drop__preview{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;width:100%}.image-drop__thumb{max-width:100%;max-height:220px;border-radius:6px;object-fit:contain}.image-drop__meta{display:flex;flex-direction:column;align-items:center;gap:.15rem}.image-drop__filename{font-size:.85rem;color:var(--text);word-break:break-all;text-align:center;max-width:100%}.image-drop__dims{font-size:.75rem;color:var(--text-muted)}.image-drop__gif-note{font-size:.75rem;color:var(--text-muted);font-style:italic;text-align:center}.image-drop__change{margin-top:.35rem;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8rem;font-family:inherit;padding:.35rem .85rem;cursor:pointer;transition:border-color .3s,color .3s}.image-drop__change:hover{border-color:var(--accent);color:var(--accent)}.image-upload__error{font-size:.85rem;color:var(--error);padding:.6rem .8rem;background:var(--error-muted);border:1px solid var(--error);border-radius:6px}.tool-output{display:flex;flex-direction:column;gap:.75rem}.tool-output__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.tool-output__preview{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.75rem;display:flex;align-items:center;justify-content:center;min-height:120px}.tool-output__image{max-width:100%;max-height:300px;border-radius:6px;object-fit:contain}.tool-output__sizes{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted)}.tool-output__arrow{opacity:.5}.tool-output__result-size{color:var(--text);font-weight:600}.tool-output__savings{color:var(--success);font-weight:600;font-size:.75rem}.tool-output__download{display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--success-muted);border:1px solid var(--success);border-radius:10px;color:var(--success);font-family:inherit;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;cursor:pointer;width:100%;word-break:break-all;transition:background-color .3s,opacity .3s}.tool-output__download:hover{opacity:.9}.tool-output__mime{font-size:.7rem;color:var(--text-muted);text-align:center}.photo-tool-controls{display:flex;flex-direction:column;gap:1.5rem}.photo-tool-controls__slider{display:flex;flex-direction:column;gap:.5rem;font-size:.9375rem;font-weight:500;color:var(--text)}.photo-tool-controls__slider input[type=range]{width:100%;accent-color:var(--accent);min-height:44px}.photo-tool-controls__options{display:flex;flex-wrap:wrap;gap:.5rem}.photo-tool-controls__option{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-family:inherit;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.photo-tool-controls__option--active{border-color:var(--accent);color:var(--accent);font-weight:600}.photo-tool-controls__text{width:100%;min-height:44px;padding:1rem;font-size:1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}.photo-tool-controls__palette{display:flex;flex-wrap:wrap;gap:1rem}.photo-tool-controls__swatch{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:4.5rem;padding:0;border:none;background:none;cursor:pointer;font-size:.8125rem;color:var(--text)}.photo-tool-controls__swatch-color{width:3rem;height:3rem;border-radius:10px;border:1px solid var(--border)}.photo-tool-controls__exif{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.photo-tool-controls__exif li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.9375rem}.photo-tool-controls__exif span:first-child{color:var(--text-muted)}.photo-tool-controls__empty{margin:0;color:var(--text-muted);font-size:.9375rem}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.crop-workspace{display:flex;flex-direction:column;gap:1rem}.crop-workspace .ReactCrop{max-width:100%;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.crop-workspace__source{max-width:100%;display:block}.crop-workspace__actions{display:flex;align-items:center;gap:1rem}.crop-workspace__info{font-size:.8rem;color:var(--text-muted)}.crop-workspace__btn{background:var(--accent);border:none;border-radius:10px;color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;padding:.65rem 1.5rem;cursor:pointer;transition:background-color .3s,opacity .3s}.crop-workspace__btn:hover:not(:disabled){background:var(--accent-hover)}.crop-workspace__btn:disabled{opacity:.5;cursor:not-allowed}.resize-controls{display:flex;flex-direction:column;gap:1rem}.resize-controls__dims{display:flex;align-items:flex-end;gap:.75rem}.resize-field{display:flex;flex-direction:column;gap:.25rem;flex:1}.resize-field__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.resize-field__input{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:inherit;font-size:.9rem;padding:.55rem .7rem;width:100%;transition:border-color .3s}.resize-field__input:focus{border-color:var(--accent);outline:none}.resize-field__unit{display:none}.resize-controls__lock{background:var(--surface);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:1rem;padding:.5rem;line-height:1;transition:border-color .3s}.resize-controls__lock--active,.resize-controls__lock:hover{border-color:var(--accent)}.resize-controls__original{font-size:.8rem;color:var(--text-muted)}.resize-controls__btn{background:var(--accent);border:none;border-radius:10px;color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;padding:.65rem 1.5rem;cursor:pointer;width:100%;transition:background-color .3s,opacity .3s}.resize-controls__btn:hover:not(:disabled){background:var(--accent-hover)}.resize-controls__btn:disabled{opacity:.5;cursor:not-allowed}.compress-controls{display:flex;flex-direction:column;gap:1rem}.compress-controls__slider-row{display:flex;flex-direction:column;gap:.5rem}.compress-controls__label{font-size:.85rem;font-weight:500;color:var(--text)}.compress-controls__slider{width:100%;accent-color:var(--accent);cursor:pointer}.compress-controls__range-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted)}.compress-controls__note{margin:0;font-size:.875rem;color:var(--text-muted);line-height:1.45}.removebg-controls{display:flex;flex-direction:column;gap:.75rem}.removebg-controls__btn{background:var(--accent);border:none;border-radius:10px;color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;padding:.65rem 1.5rem;cursor:pointer;width:100%;transition:background-color .3s,opacity .3s}.removebg-controls__btn:hover:not(:disabled){background:var(--accent-hover)}.removebg-controls__btn:disabled{opacity:.6;cursor:not-allowed}.removebg-controls__note{margin:0;font-size:.875rem;color:var(--text-muted);line-height:1.45}.removebg-controls__progress{font-size:.8rem;color:var(--text-muted);text-align:center}.removebg-controls__error{font-size:.85rem;color:var(--error);padding:.6rem .8rem;background:var(--error-muted);border:1px solid var(--error);border-radius:6px}.sharpen-controls{display:flex;flex-direction:column;gap:1rem}.sharpen-controls__slider-row{display:flex;flex-direction:column;gap:.5rem}.sharpen-controls__label{font-size:.85rem;font-weight:500;color:var(--text)}.sharpen-controls__slider{width:100%;accent-color:var(--accent);cursor:pointer}.sharpen-controls__range-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted)}.sharpen-controls__btn{background:var(--accent);border:none;border-radius:10px;color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;padding:.65rem 1.5rem;cursor:pointer;width:100%;transition:background-color .3s,opacity .3s}.sharpen-controls__btn:hover:not(:disabled){background:var(--accent-hover)}.sharpen-controls__btn:disabled{opacity:.5;cursor:not-allowed}.colorpick{display:flex;flex-direction:column;gap:1rem}.colorpick__hint{font-size:.85rem;color:var(--text-muted);margin:0}.colorpick__canvas{max-width:100%;border:1px solid var(--border);border-radius:10px;cursor:not-allowed;opacity:.6}.colorpick__canvas--ready{cursor:crosshair;opacity:1}.colorpick__result{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem}.colorpick__swatch{width:56px;height:56px;border-radius:6px;border:1px solid var(--border);flex-shrink:0}.colorpick__values{display:flex;flex-direction:column;gap:.35rem}.colorpick__value{background:none;border:none;color:var(--text);font-family:monospace;font-size:.9rem;cursor:pointer;text-align:left;padding:.25rem .5rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;transition:background-color .3s}.colorpick__value:hover{background:var(--surface-hover)}.colorpick__copied{font-size:.7rem;color:var(--success);font-family:inherit}.rotate-controls{display:flex;flex-direction:column;gap:1rem}.rotate-controls__hint{margin:0;font-size:.9375rem;color:var(--text-muted)}.rotate-controls__options{display:flex;flex-wrap:wrap;gap:.5rem}.rotate-controls__option{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:border-color .3s,background-color .3s}.rotate-controls__option:hover{border-color:var(--accent)}.rotate-controls__option--active{border-color:var(--accent);background:var(--bg-elevated);font-weight:600;color:var(--accent)}.multi-upload{display:flex;flex-direction:column;gap:1rem}.multi-upload__drop{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-height:8rem;padding:1.5rem;border:2px dashed var(--border);border-radius:14px;background:var(--surface);cursor:pointer;color:var(--text-muted);text-align:center}.multi-upload__drop:hover{border-color:var(--accent)}.multi-upload__input{display:none}.multi-upload__hint{font-size:.8125rem}.multi-upload__list{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.multi-upload__item{display:flex;align-items:center;gap:1rem;padding:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:10px}.multi-upload__thumb{width:3rem;height:3rem;object-fit:cover;border-radius:6px}.multi-upload__name{flex:1;font-size:.875rem;word-break:break-all}.multi-upload__remove,.multi-upload__clear{min-height:44px;padding:.25rem 1rem;font-family:inherit;font-size:.875rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.multi-upload__remove:hover,.multi-upload__clear:hover{border-color:var(--accent);color:var(--accent)}.multi-upload__clear{align-self:flex-start}.multi-upload__error{margin:0;color:var(--error);font-size:.875rem}.images-pdf__intro{margin:0;font-size:.9375rem;color:var(--text-muted);line-height:1.5}.copy-field{display:flex;flex-direction:column;gap:.5rem}.copy-field__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.copy-field__label{font-size:.875rem;font-weight:600;color:var(--text)}.copy-field__copy{min-height:44px;padding:.25rem 1rem;font-size:.875rem;font-family:inherit;color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:10px;cursor:pointer}.copy-field__copy:hover{border-color:var(--accent);background:var(--surface-hover)}.copy-field__textarea{width:100%;min-height:8rem;padding:1rem;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.875rem;line-height:1.5;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;resize:vertical;transition:border-color .3s}.copy-field__textarea:focus{outline:none;border-color:var(--accent)}.copy-field__textarea--error{border-color:var(--error)}.copy-field__error{margin:0;font-size:.875rem;color:var(--error)}.kitchen-tool{display:flex;flex-direction:column;gap:1.5rem}.kitchen-tool__row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.kitchen-tool__field{display:flex;flex-direction:column;gap:.25rem;min-width:7rem}.kitchen-tool__field span{font-size:.875rem;color:var(--text-muted)}.kitchen-tool__field input,.kitchen-tool__field select{min-height:44px;padding:.5rem 1rem;font-family:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px}.kitchen-tool__modes{display:flex;flex-wrap:wrap;gap:.5rem}.kitchen-tool__mode{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer}.kitchen-tool__mode--active{border-color:var(--accent);color:var(--accent);font-weight:600}.kitchen-tool__result{padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:.9375rem;line-height:1.6;white-space:pre-wrap}.kitchen-tool__timer-display{font-size:3rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:center;color:var(--accent);padding:1.5rem 0}.kitchen-tool__timer-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.kitchen-tool__btn{min-height:44px;padding:.5rem 1.5rem;font-family:inherit;font-size:1rem;border-radius:10px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text)}.kitchen-tool__btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text, #fff);font-weight:600}.kitchen-tool__btn:disabled{opacity:.5;cursor:not-allowed}.kitchen-tool__presets{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.kitchen-tool__hint{font-size:.875rem;color:var(--text-muted);text-align:center}.md-preview{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-height:400px}@media(max-width:640px){.md-preview{grid-template-columns:1fr}}.md-preview__editor{display:flex;flex-direction:column;gap:.5rem}.md-preview__label{margin:0;font-size:.875rem;font-weight:600;color:var(--text)}.md-preview__output{display:flex;flex-direction:column;gap:.5rem}.md-preview__textarea{flex:1;min-height:400px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.85rem;line-height:1.6;padding:1rem;resize:none;tab-size:2;transition:border-color .3s}.md-preview__textarea::placeholder{color:var(--text-muted)}.md-preview__textarea:focus{border-color:var(--accent);outline:none}.md-preview__rendered{flex:1;min-height:400px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;overflow-y:auto;color:var(--text);font-size:.9rem;line-height:1.7}.md-preview__rendered h1,.md-preview__rendered h2,.md-preview__rendered h3,.md-preview__rendered h4,.md-preview__rendered h5,.md-preview__rendered h6{margin:0 0 .5rem;color:var(--text);line-height:1.3}.md-preview__rendered h1{font-size:1.6rem}.md-preview__rendered h2{font-size:1.3rem}.md-preview__rendered h3{font-size:1.1rem}.md-preview__rendered p{margin:0 0 .75rem}.md-preview__rendered ul,.md-preview__rendered ol{margin:0 0 .75rem;padding-left:1.5rem}.md-preview__rendered li{margin-bottom:.25rem}.md-preview__rendered a{color:var(--accent);text-decoration:underline}.md-preview__rendered blockquote{margin:0 0 .75rem;padding:.5rem 1rem;border-left:3px solid var(--accent);background:var(--bg-elevated);border-radius:0 6px 6px 0;color:var(--text-muted)}.md-preview__rendered code{background:var(--bg-elevated);padding:.15rem .4rem;border-radius:4px;font-size:.85em;font-family:SF Mono,Fira Code,monospace}.md-preview__rendered pre{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:.75rem 1rem;overflow-x:auto;margin:0 0 .75rem}.md-preview__rendered pre code{background:none;padding:0}.md-preview__rendered hr{border:none;border-top:1px solid var(--border);margin:1rem 0}.md-preview__rendered img{max-width:100%;border-radius:6px}.md-preview__rendered del{color:var(--text-muted)}.html-preview{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-height:400px}@media(max-width:640px){.html-preview{grid-template-columns:1fr}}.html-preview__editor,.html-preview__output{display:flex;flex-direction:column;gap:.5rem}.html-preview__label{margin:0;font-size:.875rem;font-weight:600;color:var(--text)}.html-preview__textarea{flex:1;min-height:400px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.85rem;line-height:1.6;padding:1rem;resize:none;tab-size:2}.html-preview__textarea:focus{border-color:var(--accent);outline:none}.html-preview__rendered{flex:1;min-height:400px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;overflow-y:auto;color:var(--text);font-size:.9rem;line-height:1.7}.html-preview__notice{margin:0;font-size:.8125rem;color:var(--text-muted)}.html-preview__error{margin:0;color:var(--error)}.text-tool{display:flex;flex-direction:column;gap:1.5rem}.text-tool__modes{display:flex;flex-wrap:wrap;gap:.5rem}.text-tool__mode{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer}.text-tool__mode--active{border-color:var(--accent);color:var(--accent);font-weight:600}.text-tool__stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:1rem}.text-tool__stat{padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;text-align:center}.text-tool__stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--accent)}.text-tool__stat-label{display:block;margin-top:.25rem;font-size:.8125rem;color:var(--text-muted)}.text-tool__summary{font-size:.9375rem;color:var(--text-muted)}.text-tool__diff{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8125rem;line-height:1.5;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow-x:auto;white-space:pre-wrap}.text-tool__diff-line--add{color:var(--success, #2e7d32);background:color-mix(in srgb,var(--success, #2e7d32) 8%,transparent)}.text-tool__diff-line--remove{color:var(--danger, #c62828);background:color-mix(in srgb,var(--danger, #c62828) 8%,transparent)}.text-tool__now{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.text-tool__now-btn{min-height:44px;padding:.5rem 1rem;font-family:inherit;font-size:.9375rem;color:var(--accent);background:var(--surface);border:1px solid var(--accent);border-radius:10px;cursor:pointer}.qr-gen{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}@media(max-width:640px){.qr-gen{grid-template-columns:1fr}}.qr-gen__input-area{display:flex;flex-direction:column;gap:1rem}.qr-gen__label{font-size:.875rem;font-weight:600;color:var(--text)}.qr-gen__counter{font-size:.8125rem;color:var(--text-muted)}.qr-gen__textarea{background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:inherit;font-size:.9rem;padding:.75rem;resize:none;transition:border-color .3s}.qr-gen__textarea::placeholder{color:var(--text-muted)}.qr-gen__textarea:focus{border-color:var(--accent);outline:none}.qr-gen__input{min-height:44px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:inherit;font-size:.9rem;padding:.65rem .75rem;width:100%}.qr-gen__input:focus{border-color:var(--accent);outline:none}.qr-gen__templates{display:flex;flex-wrap:wrap;gap:.5rem}.qr-gen__template{min-height:44px;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer}.qr-gen__template--active{border-color:var(--accent);color:var(--accent);font-weight:600}.qr-gen__wifi{display:flex;flex-direction:column;gap:.5rem}.qr-gen__colors{display:flex;flex-wrap:wrap;gap:1rem}.qr-gen__color{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-muted)}.qr-gen__color input[type=color]{width:2.5rem;height:2rem;padding:0;border:1px solid var(--border);border-radius:6px;cursor:pointer}.qr-gen__size{display:flex;flex-direction:column;gap:.35rem}.qr-gen__size-label{font-size:.8rem;color:var(--text-muted)}.qr-gen__slider{width:100%;accent-color:var(--accent);cursor:pointer}.qr-gen__btn{background:var(--accent);border:none;border-radius:10px;color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;padding:.65rem 1.5rem;cursor:pointer;transition:background-color .3s}.qr-gen__btn:hover{background:var(--accent-hover)}.qr-gen__error{font-size:.85rem;color:var(--error);padding:.6rem .8rem;background:var(--error-muted);border:1px solid var(--error);border-radius:6px}.qr-gen__output{position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem;min-height:200px;justify-content:center}.qr-gen__preview{max-width:100%;border-radius:10px;border:1px solid var(--border);background:#fff}.qr-gen__placeholder{padding:2rem;text-align:center;color:var(--text-muted);font-size:.9375rem;border:1px dashed var(--border);border-radius:10px;width:100%}.qr-gen__canvas{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.barcode-tool{display:flex;flex-direction:column;gap:1.5rem;max-width:32rem}.barcode-tool__field{display:flex;flex-direction:column;gap:.25rem}.barcode-tool__field span{font-size:.875rem;font-weight:600;color:var(--text)}.barcode-tool__field input,.barcode-tool__field select{min-height:44px;padding:.5rem 1rem;font-family:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px}.barcode-tool__error{font-size:.875rem;color:var(--error)}.barcode-tool__output{position:relative;display:flex;justify-content:center;min-height:8rem}.barcode-tool__preview{max-width:100%;background:#fff;border:1px solid var(--border);border-radius:10px;padding:1rem}.barcode-tool__placeholder{width:100%;padding:2rem;text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:10px}.barcode-tool__canvas{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.json-tool{display:flex;flex-direction:column;gap:1.5rem}.json-tool__modes{display:flex;flex-wrap:wrap;gap:.5rem}.json-tool__mode{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer}.json-tool__mode--active{border-color:var(--accent);color:var(--accent);font-weight:600}.base64-tool{display:flex;flex-direction:column;gap:1.5rem}.base64-tool__modes{display:flex;flex-wrap:wrap;gap:.5rem}.base64-tool__mode{min-height:44px;padding:.5rem 1rem;font-size:.9375rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer}.base64-tool__mode--active{border-color:var(--accent);color:var(--accent);font-weight:600}.base64-tool__file{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:var(--text-muted)}.base64-tool__file input[type=file]{font-size:.875rem}.base64-tool__file-note{margin:0;font-size:.875rem;color:var(--text-muted)}.base64-tool__clear{font-family:inherit;font-size:inherit;color:var(--accent);background:none;border:none;cursor:pointer;text-decoration:underline}.hash-tool{display:flex;flex-direction:column;gap:1.5rem}.hash-tool__algo{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--text)}.hash-tool__algo select{min-height:44px;padding:.5rem 1rem;font-size:1rem;font-family:inherit;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}.hash-tool__file{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:var(--text-muted)}.hash-tool__file-note{margin:0;font-size:.875rem;color:var(--text-muted)}.hash-tool__clear{font-family:inherit;font-size:inherit;color:var(--accent);background:none;border:none;cursor:pointer;text-decoration:underline}.uuid-tool{display:flex;flex-direction:column;gap:1.5rem}.uuid-tool__count{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--text)}.uuid-tool__count input{min-height:44px;max-width:8rem;padding:.5rem 1rem;font-size:1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}.recipe-photo-stage{margin-bottom:1.25rem;padding:.9rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.recipe-photo-stage__hint{margin:0 0 .75rem;font-size:.85rem;color:var(--text-muted);line-height:1.4}.recipe-photo-stage__pages{display:flex;gap:.7rem;margin:0 0 .85rem;padding:0 0 .35rem;list-style:none;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.recipe-photo-stage__page{flex:0 0 8rem;scroll-snap-align:start;display:flex;flex-direction:column;gap:.45rem}.recipe-photo-stage__frame{position:relative;overflow:hidden;border-radius:6px;border:1px solid var(--border);background:var(--bg)}.recipe-photo-stage__thumb{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--bg)}.recipe-photo-stage__badge{position:absolute;left:.4rem;bottom:.4rem;padding:.15rem .4rem;border-radius:9999px;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);color:var(--text);font-size:.7rem;font-weight:600}.recipe-photo-stage__controls{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.recipe-photo-stage__move,.recipe-photo-stage__remove{min-height:44px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);color:var(--text);font:inherit;cursor:pointer}.recipe-photo-stage__move:hover:not(:disabled),.recipe-photo-stage__remove:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.recipe-photo-stage__move:disabled,.recipe-photo-stage__remove:disabled{opacity:.45;cursor:not-allowed}.recipe-photo-stage__move:focus-visible,.recipe-photo-stage__remove:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-photo-stage__move{font-size:1.35rem;line-height:1}.recipe-photo-stage__remove{grid-column:1/-1;font-size:.8rem;font-weight:600}.recipe-photo-stage__actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.recipe-photo-stage__secondary,.recipe-photo-stage__primary{min-height:44px;padding:.5rem 1rem;border-radius:6px;font:inherit;font-weight:600;cursor:pointer}.recipe-photo-stage__secondary:disabled,.recipe-photo-stage__primary:disabled{opacity:.5;cursor:not-allowed}.recipe-photo-stage__secondary:focus-visible,.recipe-photo-stage__primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-photo-stage__secondary{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}.recipe-photo-stage__secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.recipe-photo-stage__primary{flex:1 1 10rem;border:none;background:var(--accent);color:#fff}.recipe-photo-stage__primary:hover:not(:disabled){background:var(--accent-hover)}.duplicate-items-modal-overlay{position:fixed;inset:0;z-index:1200;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem}.duplicate-items-modal{width:min(100%,24rem);padding:1.25rem;border-radius:14px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 16px 40px #0000002e}.duplicate-items-modal h2{margin:0 0 .5rem;font-size:1.05rem;color:var(--text)}.duplicate-items-modal p{margin:0 0 .75rem;color:var(--text-muted);line-height:1.45}.duplicate-items-modal__hint{font-size:.9rem}.duplicate-items-modal__names{margin:0 0 1rem;padding-left:1.1rem;color:var(--text)}.duplicate-items-modal__names li{margin-bottom:.2rem}.duplicate-items-modal__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.duplicate-items-modal__actions button{min-height:2.25rem;padding:.45rem .85rem;border-radius:10px;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);transition:background-color .3s ease,border-color .3s ease,color .3s ease,transform .3s ease,box-shadow .3s ease}.duplicate-items-modal__actions button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}.duplicate-items-modal__actions button:active:not(:disabled){transform:scale(.98)}.duplicate-items-modal__actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.duplicate-items-modal__actions button:disabled{opacity:.6;cursor:not-allowed}.duplicate-items-modal__missing{border-color:var(--accent)!important;color:var(--accent)!important;background:var(--accent-muted)!important}.duplicate-items-modal__missing:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 18%,var(--surface))!important;border-color:var(--accent-hover)!important;color:var(--accent-hover)!important}.duplicate-items-modal__confirm{border-color:var(--accent)!important;background:var(--accent)!important;color:#fff!important}.duplicate-items-modal__confirm:hover:not(:disabled){background:var(--accent-hover)!important;border-color:var(--accent-hover)!important;color:#fff!important}.list-picker-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--text) 35%,transparent);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.list-picker-modal{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.list-picker-modal__header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.list-picker-modal__header h2{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.list-picker-modal__close{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer}.list-picker-modal__close:hover{color:var(--text);background:var(--surface-hover)}.list-picker-modal__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.list-picker-modal__body{padding:.75rem 1rem 1rem}.list-picker-modal__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.list-picker-modal__btn{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.75rem .85rem;min-height:44px;text-align:left;font:inherit;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.list-picker-modal__btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-muted)}.list-picker-modal__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.list-picker-modal__btn:disabled{opacity:.6;cursor:not-allowed}.list-picker-modal__name{font-size:.95rem;font-weight:600}.list-picker-modal__meta{font-size:.78rem;color:var(--text-muted)}.list-picker-modal__create{width:100%;margin-top:.65rem;padding:.55rem .85rem;min-height:44px;font:inherit;font-size:.88rem;font-weight:600;background:transparent;border:1px dashed var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:border-color .3s ease,color .3s ease,background-color .3s ease}.list-picker-modal__create:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.recipe-export-menu{position:relative}.recipe-export-menu__trigger{min-height:2.25rem;padding:.45rem .85rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.recipe-export-menu__trigger:hover{background:var(--surface-hover);border-color:var(--border-hover)}.recipe-export-menu--compact .recipe-export-menu__trigger{min-height:1.85rem;padding:.3rem .65rem;font-size:.8rem}.recipe-export-menu--compact .recipe-export-menu__dropdown{bottom:auto;top:calc(100% + .35rem)}.recipe-export-menu--card{flex:1;display:flex;min-width:0;border-right:1px solid var(--border)}.recipe-export-menu--card .recipe-export-menu__trigger{flex:1;width:100%;min-height:44px;padding:.6rem .5rem;border:none;border-radius:0;background:transparent;color:var(--text);font-size:.85rem;font-weight:400}.recipe-export-menu--card .recipe-export-menu__trigger:hover,.recipe-export-menu--card .recipe-export-menu__trigger[aria-expanded=true]{background:var(--surface-hover);color:var(--accent)}.recipe-export-menu--card .recipe-export-menu__trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.recipe-export-menu--card .recipe-export-menu__dropdown{bottom:calc(100% + .35rem);top:auto;z-index:5}.recipe-export-menu__dropdown{position:absolute;right:0;bottom:calc(100% + .35rem);min-width:12rem;padding:.35rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 8px 24px #0000001f;z-index:2}.recipe-export-menu__dropdown button{display:block;width:100%;padding:.55rem .75rem;border:none;border-radius:6px;background:transparent;color:var(--text);font:inherit;font-size:.85rem;text-align:left;cursor:pointer;transition:background-color .3s ease}.recipe-export-menu__dropdown button:hover:not(:disabled){background:var(--surface-hover)}.recipe-export-menu__dropdown button:disabled{opacity:.6;cursor:not-allowed}.recipe-export-menu__dropdown--left{left:0;right:auto}.recipe-export-menu__dropdown--right{right:0;left:auto}.recipe-view-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;animation:recipe-view-fade-in .2s ease}@media(max-width:480px){.recipe-view-overlay{padding:max(.5rem,env(safe-area-inset-top,0px)) max(.5rem,env(safe-area-inset-right,0px)) max(.5rem,env(safe-area-inset-bottom,0px)) max(.5rem,env(safe-area-inset-left,0px));align-items:stretch;overflow:hidden}}@keyframes recipe-view-fade-in{0%{opacity:0}to{opacity:1}}.recipe-view{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0003;animation:recipe-view-slide-in .25s ease}@media(max-width:480px){.recipe-view{flex:1 1 auto;min-height:0;max-height:100%;border-radius:10px}}@keyframes recipe-view-slide-in{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}.recipe-view__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}@media(max-width:480px){.recipe-view__header{padding:.875rem 1rem}}.recipe-view__title{flex:1;min-width:0;margin:0;font-size:1.35rem;font-weight:600;color:var(--text);line-height:1.3;word-break:break-word}@media(max-width:480px){.recipe-view__title{font-size:1.2rem}}.recipe-view__close{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer}.recipe-view__close:hover{color:var(--text);background:var(--surface-hover)}.recipe-view__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-view__close-icon{display:flex;align-items:center;justify-content:center;line-height:1;font-size:1.5rem;transform:translateY(-.04em)}.recipe-view__chips{display:flex;flex-wrap:wrap;gap:.4rem;padding:.65rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}@media(max-width:480px){.recipe-view__chips{padding:.6rem 1rem}}.recipe-view__chip{display:inline-flex;align-items:center;font-size:.75rem;font-weight:500;padding:.2rem .55rem;border-radius:9999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);line-height:1.3}.recipe-view__chip--folder{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.recipe-view__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}@media(max-width:480px){.recipe-view__toolbar{padding:.75rem 1rem}}.recipe-view__servings{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.recipe-view__servings-label{font-size:.85rem;font-weight:500;color:var(--text-muted)}.recipe-view__servings-controls{display:flex;align-items:center;border:1px solid var(--border);border-radius:6px;overflow:hidden}.recipe-view__servings-btn{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;min-width:44px;min-height:44px;padding:0;background:var(--surface);border:none;color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer;transition:background-color .3s,color .3s}.recipe-view__servings-btn:hover{background:var(--surface-hover);color:var(--accent)}.recipe-view__servings-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.recipe-view__servings-input{width:3.5rem;height:2.25rem;padding:0;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;font-weight:500;text-align:center;font-family:inherit;appearance:textfield;-moz-appearance:textfield;transition:background-color .3s ease}.recipe-view__servings-input::-webkit-outer-spin-button,.recipe-view__servings-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.recipe-view__servings-input:focus{outline:none;background:var(--surface-hover)}.recipe-view__servings-unit{font-size:.85rem;color:var(--text-muted)}.recipe-view__keep-awake{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.45rem .85rem;min-height:44px;font-size:.85rem;font-weight:500;font-family:inherit;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:border-color .3s,color .3s,background-color .3s,box-shadow .3s}.recipe-view__keep-awake:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.recipe-view__keep-awake:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-view__keep-awake:disabled{opacity:.45;cursor:not-allowed}.recipe-view__keep-awake--on{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.recipe-view__keep-awake-icon{font-size:.95rem;line-height:1}.recipe-view__wrapper{flex:1;min-height:0;overflow:auto}.recipe-view__content{padding:1.25rem;min-width:0}@media(max-width:480px){.recipe-view__content{padding:1rem}}.recipe-view__image-wrap{width:calc(100% + 2.5rem);margin:-1.25rem -1.25rem 1rem;overflow:hidden;max-height:220px}@media(max-width:480px){.recipe-view__image-wrap{width:calc(100% + 2rem);margin:-1rem -1rem .875rem;max-height:180px}}.recipe-view__image{width:100%;height:100%;object-fit:cover;display:block}.recipe-view__description{margin:0 0 1rem;font-size:.95rem;line-height:1.5;color:var(--text-muted)}.recipe-view__meta{display:flex;gap:1.25rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border);flex-wrap:wrap}.recipe-view__meta-item{display:flex;flex-direction:column;gap:.1rem;font-size:.9rem;font-weight:500;color:var(--text)}.recipe-view__meta-label{font-size:.75rem;font-weight:400;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.recipe-view__section{margin-bottom:1.5rem}.recipe-view__section:last-child{margin-bottom:0}.recipe-view__section-title{margin:0 0 .65rem;font-size:1rem;font-weight:600;color:var(--text);letter-spacing:.01em}.recipe-view__section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.recipe-view__section-header .recipe-view__section-title{margin-bottom:0}.recipe-view__step-progress{font-size:.8rem;font-weight:500;color:var(--text-muted)}.recipe-view__progress-bar{height:3px;background:var(--border);border-radius:2px;margin-bottom:.75rem;overflow:hidden}.recipe-view__progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s}.recipe-view__list-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.recipe-view__list-btn{padding:.35rem .75rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:500;font-family:inherit;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;transition:background-color .3s}.recipe-view__list-btn:hover{background:var(--accent-hover)}.recipe-view__list-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-view__list-btn--secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.recipe-view__list-btn--secondary:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.recipe-view__ingredients{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.recipe-view__ingredient-item{display:flex;flex-direction:column;gap:.25rem}.recipe-view__ingredient{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem .65rem;padding:.55rem .65rem;font-size:.95rem;line-height:1.4;color:var(--text);border-radius:6px;border:1px solid transparent;transition:background-color .3s ease,border-color .3s ease}.recipe-view__ingredients--selectable .recipe-view__ingredient{grid-template-columns:1.5rem auto minmax(0,1fr) auto}.recipe-view__ingredient:hover{background:var(--surface);border-color:var(--border)}.recipe-view__ingredients--selectable .recipe-view__ingredient:has(.recipe-view__ingredient-check-input:checked){background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,var(--border))}.recipe-view__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.recipe-view__ingredient-check{position:relative;display:inline-flex;align-items:center;justify-content:center;justify-self:center;width:1.375rem;height:1.375rem;cursor:pointer;flex-shrink:0}.recipe-view__ingredient-check-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.recipe-view__ingredient-check-box{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:1.5px solid var(--border);border-radius:6px;background:var(--bg-elevated);pointer-events:none;transition:border-color .3s,background-color .3s,box-shadow .3s}.recipe-view__ingredient-check-icon{font-size:.65rem;font-weight:700;line-height:1;color:#fff;opacity:0;transform:scale(.6);transition:opacity .3s,transform .3s}.recipe-view__ingredient-check:hover .recipe-view__ingredient-check-box{border-color:var(--accent);background:var(--accent-muted)}.recipe-view__ingredient-check-input:focus-visible+.recipe-view__ingredient-check-box{box-shadow:0 0 0 2px var(--accent-muted);border-color:var(--accent)}.recipe-view__ingredient-check-input:checked+.recipe-view__ingredient-check-box{background:var(--accent);border-color:var(--accent)}.recipe-view__ingredient-check-input:checked+.recipe-view__ingredient-check-box .recipe-view__ingredient-check-icon{opacity:1;transform:scale(1)}.recipe-view__ingredient-amount{display:inline-flex;align-items:baseline;gap:.3rem;min-width:0;max-width:100%;white-space:nowrap}.recipe-view__ingredient-qty{font-weight:600;font-variant-numeric:tabular-nums}.recipe-view__ingredient-unit{color:var(--text-muted)}.recipe-view__ingredient-name{min-width:0}@media(max-width:520px){.recipe-view__ingredient{grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-items:start}.recipe-view__ingredient-amount{grid-column:1;grid-row:1}.recipe-view__ingredient-name{grid-column:2;grid-row:1}.recipe-view__sub-btn{grid-column:2;grid-row:2;justify-self:start;margin-top:.1rem}.recipe-view__ingredients--selectable .recipe-view__ingredient{grid-template-columns:1.5rem auto minmax(0,1fr)}.recipe-view__ingredients--selectable .recipe-view__ingredient-amount{grid-column:2}.recipe-view__ingredients--selectable .recipe-view__ingredient-name,.recipe-view__ingredients--selectable .recipe-view__sub-btn{grid-column:3}}.recipe-view__sub-btn{flex-shrink:0;padding:.25rem .55rem;min-height:1.75rem;font-size:.72rem;font-weight:600;font-family:inherit;letter-spacing:.02em;text-transform:uppercase;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background-color .3s ease,border-color .3s ease,color .3s ease,opacity .3s ease}.recipe-view__sub-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.recipe-view__sub-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-view__sub-btn--open{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.recipe-view__sub-panel{padding:.55rem .65rem;margin:0 .65rem .15rem;background:var(--bg-elevated);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;transition:border-color .3s ease,background-color .3s ease,opacity .3s ease}.recipe-view__sub-tier{display:inline-block;margin:0 0 .35rem;padding:.1rem .45rem;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:var(--accent-muted);border-radius:6px}.recipe-view__sub-tier--suggested{color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);text-transform:none;letter-spacing:normal;font-size:.72rem;line-height:1.3}.recipe-view__sub-count{margin:0 0 .25rem;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.recipe-view__sub-text{margin:0 0 .45rem;font-size:.85rem;line-height:1.45;color:var(--text)}.recipe-view__sub-text:last-child{margin-bottom:0}.recipe-view__sub-text--muted{color:var(--text-muted);margin-bottom:.45rem}.recipe-view__sub-sourcing{margin:-.2rem 0 .45rem;font-size:.75rem;line-height:1.4;color:var(--text-muted)}.recipe-view__sub-disclaimer{margin:.5rem 0 0;font-size:.72rem;line-height:1.4;color:var(--text-muted)}.recipe-view__sub-cycle{padding:.3rem .65rem;min-height:44px;font-size:.8rem;font-weight:500;font-family:inherit;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.recipe-view__sub-cycle:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.recipe-view__sub-cycle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-view__steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.recipe-view__step{display:grid;grid-template-columns:2.25rem 1fr;gap:.75rem;align-items:center;padding:.75rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);transition:opacity .3s,border-color .3s,background-color .3s}.recipe-view__step--done{opacity:.6;background:transparent;border-color:color-mix(in srgb,var(--border) 60%,transparent)}.recipe-view__step--done .recipe-view__step-text{text-decoration:line-through;color:var(--text-muted)}.recipe-view__step:not(.recipe-view__step--done):hover{border-color:var(--border-hover);background:color-mix(in srgb,var(--surface) 85%,var(--bg-elevated))}.recipe-view__step-check{flex-shrink:0;width:2.25rem;height:2.25rem;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--border);border-radius:50%;background:var(--bg-elevated);cursor:pointer;padding:0;font-family:inherit;transition:border-color .3s,background-color .3s,color .3s}.recipe-view__step-check:hover{border-color:var(--accent);background:var(--accent-muted)}.recipe-view__step-check:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-view__step--done .recipe-view__step-check{border-color:var(--accent);background:var(--accent)}.recipe-view__step-num{font-size:.8rem;font-weight:700;color:var(--text-muted);line-height:1;transition:color .3s}.recipe-view__step-checkmark{font-size:.85rem;font-weight:700;color:#fff;line-height:1}.recipe-view__step-body{min-width:0}.recipe-view__step-text{display:block;font-size:.95rem;line-height:1.55;color:var(--text);transition:color .3s}.recipe-view__footer{padding:.75rem 1.25rem;border-top:1px solid var(--border);flex-shrink:0;display:flex;gap:.5rem;align-items:stretch}@media(max-width:480px){.recipe-view__footer{padding:.75rem 1rem;flex-direction:column}}.recipe-view__footer .recipe-export-menu{flex:1}.recipe-view__footer .recipe-export-menu__trigger{width:100%;min-height:48px}.recipe-view__edit{flex:1;padding:.6rem 1rem;min-height:48px;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:500;font-family:inherit;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;transition:border-color .3s,color .3s,background-color .3s}.recipe-view__edit:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.recipe-view__edit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-view__notes-section{padding-top:1rem;border-top:1px solid var(--border)}.recipe-view__notes{margin:0;font-size:.9rem;line-height:1.6;color:var(--text-muted);white-space:pre-wrap}.step-timer{margin-top:.65rem;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg-elevated);transition:border-color .3s,box-shadow .3s}.step-timer--running{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted)}.step-timer--done{border-color:var(--success, #2d7a52)}.step-timer__track{height:3px;background:var(--border);overflow:hidden}.step-timer__fill{height:100%;background:var(--accent);transition:width 1s linear}.step-timer--done .step-timer__fill{background:var(--success, #2d7a52);width:100%!important}.step-timer__body{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem .65rem;flex-wrap:wrap}.step-timer__display{font-size:.9rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);letter-spacing:.02em}.step-timer--done .step-timer__display{color:var(--success, #2d7a52)}.step-timer__controls{display:flex;gap:.4rem}.step-timer__btn{padding:.25rem .6rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;font-family:inherit;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;transition:border-color .3s,color .3s,background-color .3s}.step-timer__btn:hover{border-color:var(--accent);color:var(--accent)}.step-timer__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.step-timer__btn--start{background:var(--accent);border-color:var(--accent);color:#fff}.step-timer__btn--start:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.step-timer__btn--reset{color:var(--text-muted)}.recipes-page{width:100%;display:flex;flex-direction:column}.recipes-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;width:100%;flex-shrink:0}@media(max-width:480px){.recipes-page__header{flex-direction:column;gap:.75rem;margin-bottom:1.25rem}}.recipes-page__title{font-size:1.5rem;font-weight:600;color:var(--text);margin:0}@media(max-width:480px){.recipes-page__title{font-size:1.35rem}}.recipes-page__new{flex-shrink:0;background:var(--accent);border:none;border-radius:10px;color:#fff;font-size:.9rem;font-weight:600;padding:.6rem 1.25rem;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:background-color .3s}.recipes-page__new:hover{background:var(--accent-hover)}.recipes-page__new:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:480px){.recipes-page__new{width:100%;padding:.75rem 1.25rem}}.recipes-page__body{max-width:1040px;width:100%}.recipes-page__toolbar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.recipes-page__search,.recipes-page__folder-filter{flex:1;min-width:140px;min-height:44px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;transition:border-color .3s,box-shadow .3s,background-color .3s}.recipes-page__search::placeholder,.recipes-page__folder-filter::placeholder{color:var(--text-muted);opacity:.85}.recipes-page__search:hover,.recipes-page__folder-filter:hover{border-color:var(--border-hover)}.recipes-page__search:focus,.recipes-page__folder-filter:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-muted)}.recipes-page__folder-btn{padding:.5rem .85rem;min-height:44px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit;font-weight:500;transition:border-color .3s,color .3s,background-color .3s}.recipes-page__folder-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.recipes-page__folder-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipes-page__import{display:flex;gap:.5rem;margin-bottom:1.25rem}.recipes-page__import input{flex:1;min-height:44px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;transition:border-color .3s,box-shadow .3s}.recipes-page__import input::placeholder{color:var(--text-muted);opacity:.85}.recipes-page__import input:hover{border-color:var(--border-hover)}.recipes-page__import input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-muted)}.recipes-page__import button{flex-shrink:0;padding:.5rem 1rem;min-height:44px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:background-color .3s,opacity .3s}.recipes-page__import button:hover:not(:disabled){background:var(--accent-hover)}.recipes-page__import button:focus-visible:not(:disabled){outline:2px solid var(--accent);outline-offset:2px}.recipes-page__import button:disabled{opacity:.5;cursor:not-allowed}.recipes-page__import-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.recipes-page__import-row .recipes-page__import{flex:1;min-width:min(100%,18rem);margin-bottom:0}.recipes-page__import-file{display:flex;align-items:stretch}.recipes-page__import-file-input{display:none}.recipes-page__import-file-btn{padding:.5rem 1rem;min-height:44px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:background-color .3s,border-color .3s}.recipes-page__import-file-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.recipes-page__import-file-btn:disabled{opacity:.5;cursor:not-allowed}.recipes-page__card-meta-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.recipes-page__card-folder{font-size:.75rem;padding:.15rem .5rem;border-radius:9999px;background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.recipes-page__card-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.65rem;min-height:1.75rem}.recipes-page__tag{font-size:.72rem;padding:.2rem .55rem;border-radius:9999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);line-height:1.3}.recipes-form__tags{display:flex;flex-wrap:wrap;gap:.4rem}.recipes-form__tag{padding:.35rem .65rem;border:1px solid var(--border);border-radius:9999px;background:var(--surface);color:var(--text);font-size:.8rem;cursor:pointer;transition:background-color .3s,border-color .3s,color .3s,box-shadow .3s}.recipes-form__tag:hover:not(.recipes-form__tag--active){border-color:var(--accent);color:var(--accent)}.recipes-form__tag:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipes-form__tag--active{background:var(--accent);border-color:var(--accent);color:#fff}.recipes-page__guest-overlay{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width, 0);z-index:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.recipes-page__guest-center{pointer-events:auto;display:flex;flex-direction:column;align-items:center;text-align:center}.recipes-page__guest{text-align:center;padding:2.5rem 2rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;max-width:420px;width:100%;display:flex;flex-direction:column;align-items:center;gap:0;margin:0 1rem}@media(max-width:480px){.recipes-page__guest{padding:2rem 1.5rem;margin:0 .5rem}}.recipes-page__guest-icon{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;margin-bottom:1.5rem;color:var(--text-muted);opacity:.85}.recipes-page__guest-icon svg{width:2.25rem;height:2.25rem}.recipes-page__guest-text{margin:0;font-size:1.1rem;line-height:1.45;color:var(--text);font-weight:500}.recipes-page__guest-sub{margin:.5rem 0 2rem;font-size:.9rem;line-height:1.4;color:var(--text-muted);max-width:20em}.recipes-page__cta{background:var(--accent);border:none;border-radius:10px;color:#fff;font-size:1rem;font-weight:600;padding:.75rem 1.75rem;min-height:48px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .3s}.recipes-page__cta:hover{background:var(--accent-hover)}.recipes-page__cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipes-page__error{padding:.75rem 1rem;background:var(--error-muted);border:1px solid var(--error);border-radius:6px;color:var(--error);margin-bottom:1rem}.recipes-page__loading,.recipes-page__empty{color:var(--text-muted);margin:0;padding:2.5rem 1rem;text-align:center;line-height:1.5;font-size:.95rem}.recipes-page__list{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem;grid-template-columns:1fr}@media(min-width:560px){.recipes-page__list{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.recipes-page__list{grid-template-columns:repeat(2,1fr)}}@media(min-width:1280px){.recipes-page__list{grid-template-columns:repeat(3,1fr)}}.recipes-page__card{display:flex;flex-direction:column;min-height:11.5rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:visible;transition:border-color .3s,box-shadow .3s}.recipes-page__card:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.recipes-page__card:has(.recipe-export-menu__trigger[aria-expanded=true]){position:relative;z-index:2}.recipes-page__card-body{flex:1;min-height:0;padding:1.5rem;cursor:pointer;display:flex;flex-direction:column;gap:.35rem;border-radius:14px 14px 0 0;overflow:hidden;transition:background-color .3s}.recipes-page__card-body:hover{background:color-mix(in srgb,var(--surface-hover) 50%,transparent)}.recipes-page__card-body:focus{outline:none}.recipes-page__card-body:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.recipes-page__card-title{font-size:1.1rem;font-weight:600;margin:0 0 .35rem;color:var(--text);line-height:1.3;word-break:break-word}.recipes-page__card-desc{font-size:.875rem;color:var(--text-muted);margin:0 0 .5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.recipes-page__card-meta{font-size:.8rem;color:var(--text-muted)}.recipes-page__card-actions{display:flex;align-items:stretch;gap:0;flex-shrink:0;border-top:1px solid var(--border);background:var(--surface);border-radius:0 0 14px 14px}.recipes-page__card-actions>:first-child,.recipes-page__card-actions>:first-child .recipe-export-menu__trigger{border-bottom-left-radius:14px}.recipes-page__card-actions>:last-child,.recipes-page__card-actions>:last-child .recipe-export-menu__trigger{border-bottom-right-radius:14px}.recipes-page__card-btn{flex:1;background:transparent;border:none;border-right:1px solid var(--border);color:var(--text);font-size:.85rem;padding:.6rem .5rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .3s,color .3s}.recipes-page__card-btn:last-of-type{border-right:none}.recipes-page__card-btn:hover{background:var(--surface-hover);color:var(--accent)}.recipes-page__card-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.recipes-page__card-btn--view{font-weight:600}.recipes-page__card-btn--view:hover{color:var(--accent)}.recipes-page__card-btn--danger{color:var(--error)}.recipes-page__card-btn--danger:hover{background:var(--error-muted);color:var(--error)}.recipes-page__confirm{font-size:.8rem;color:var(--text-muted)}.recipes-form--confirm .recipes-form__body{padding:1.25rem 1.25rem 0}.recipes-form--prompt{max-width:400px}.recipes-form__body--prompt{padding:1.25rem 1.25rem 0}.recipes-form__confirm-msg{margin:0;font-size:1rem;line-height:1.5;color:var(--text)}.recipes-form__confirm-msg strong{font-weight:600}.recipes-form__actions--footer{margin:0;padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--border)}.recipes-form__save--danger{background:var(--error);color:#fff}.recipes-form__save--danger:hover:not(:disabled){background:var(--error);filter:brightness(1.1)}.recipes-form-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;animation:recipes-overlay-fade-in .2s ease}@media(max-width:480px){.recipes-form-overlay{padding:max(.5rem,env(safe-area-inset-top,0px)) max(.5rem,env(safe-area-inset-right,0px)) max(.5rem,env(safe-area-inset-bottom,0px)) max(.5rem,env(safe-area-inset-left,0px));align-items:stretch;overflow:hidden}}@keyframes recipes-overlay-fade-in{0%{opacity:0}to{opacity:1}}.recipes-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;max-width:560px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003;animation:recipes-form-slide-in .25s ease}@media(max-width:480px){.recipes-form{flex:1 1 auto;min-height:0;max-height:100%;border-radius:10px}}@keyframes recipes-form-slide-in{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}.recipes-form__form{display:flex;flex-direction:column;flex:1;min-height:0}.recipes-form__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.recipes-form__header h2{margin:0;font-size:1.2rem;font-weight:600;color:var(--text)}.recipes-form__close{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer}.recipes-form__close:hover{color:var(--text);background:var(--surface-hover)}.recipes-form__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipes-form__close-icon{display:flex;align-items:center;justify-content:center;line-height:1;font-size:1.5rem;transform:translateY(-.04em)}.recipes-form__body{flex:1;min-height:0;padding:1.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;-webkit-overflow-scrolling:touch}.recipes-form__error{font-size:.85rem;color:var(--error);padding:.5rem .75rem;background:var(--error-muted);border-radius:6px}.recipes-form__field{display:flex;flex-direction:column;gap:.25rem}.recipes-form__field span{font-size:.8rem;font-weight:500;color:var(--text-muted)}.recipes-form__field input,.recipes-form__field textarea,.recipes-form__field select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:1rem;padding:.5rem .75rem;font-family:inherit;transition:border-color .3s,background-color .3s,box-shadow .3s}.recipes-form__field input:hover,.recipes-form__field textarea:hover,.recipes-form__field select:hover{border-color:var(--border-hover)}.recipes-form__field input:focus,.recipes-form__field textarea:focus,.recipes-form__field select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-muted)}.recipes-form__field textarea{resize:vertical;min-height:4rem;line-height:1.45}.recipes-form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:400px){.recipes-form__row{grid-template-columns:1fr}}.recipes-form__section{padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:10px}.recipes-form__section--basics{display:flex;flex-direction:column;gap:1rem}.recipes-form__section h3{font-size:.9rem;font-weight:600;color:var(--text);margin:0 0 .65rem;letter-spacing:.01em}.recipes-form__section-hint{margin:-.25rem 0 .75rem;font-size:.8rem;line-height:1.4;color:var(--text-muted)}.recipes-form__row-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color .3s,background-color .3s}.recipes-form__row-remove span{display:block;font-size:1rem;line-height:1;transform:translateY(-.5px)}.recipes-form__row-remove:hover{color:var(--error);background:var(--error-muted)}.recipes-form__row-remove:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.recipes-form__ingredient{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap;padding:.5rem;border-radius:6px;background:var(--bg-elevated);border:1px solid transparent;transition:border-color .3s,background-color .3s}.recipes-form__ingredient:hover{border-color:var(--border)}.recipes-form__ingredient:last-of-type{margin-bottom:.75rem}.recipes-form__ingredient input[type=text]:first-of-type{flex:1;min-width:80px}.recipes-form__ingredient .recipes-form__qty-input{width:4.5rem;min-width:4rem;flex:0 0 auto}.recipes-form__ingredient input[type=text]:nth-of-type(2){width:5rem;min-width:4rem;flex:0 0 auto}.recipes-form__ingredient input{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.9rem;padding:.4rem .5rem;font-family:inherit;transition:border-color .3s,background-color .3s,box-shadow .3s}.recipes-form__ingredient input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-muted)}@media(max-width:400px){.recipes-form__ingredient input[type=text]:first-of-type{width:100%}}.recipes-form__step{display:grid;grid-template-columns:1.25rem minmax(0,1fr) 3.25rem 1.375rem;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem .6rem;border-radius:6px;background:var(--bg-elevated);border:1px solid transparent;transition:border-color .3s,background-color .3s}.recipes-form__step:hover{border-color:var(--border)}.recipes-form__step:last-of-type{margin-bottom:.75rem}@media(max-width:420px){.recipes-form__step{grid-template-columns:1.25rem minmax(0,1fr) 1.375rem}.recipes-form__step .recipes-form__step-num{align-self:start;padding-top:.55rem}.recipes-form__step .recipes-form__step-instruction{grid-column:2/-1}.recipes-form__step .recipes-form__step-timer-input{grid-column:2;max-width:5rem}.recipes-form__step .recipes-form__row-remove{grid-column:3;justify-self:end}}.recipes-form__step-num{justify-self:center;font-size:.8rem;font-weight:600;color:var(--text-muted);line-height:1}.recipes-form__step-instruction{width:100%;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.9rem;padding:.45rem .55rem;font-family:inherit;resize:vertical;min-height:2.5rem;line-height:1.45;transition:border-color .3s,background-color .3s,box-shadow .3s}.recipes-form__step-instruction:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-muted)}.recipes-form__step-timer-input{width:100%;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;padding:.45rem .25rem;font-family:inherit;transition:border-color .3s,background-color .3s,box-shadow .3s}.recipes-form__step-timer-input::placeholder{color:var(--text-muted);font-size:.75rem}.recipes-form__step-timer-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-muted)}.recipes-form__add{background:none;border:1px dashed var(--border);border-radius:6px;color:var(--text-muted);font-size:.85rem;padding:.5rem .75rem;min-height:44px;width:100%;cursor:pointer;margin-top:.25rem;transition:border-color .3s,color .3s,background-color .3s}.recipes-form__add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.recipes-form__add:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipes-form__actions{display:flex;justify-content:flex-end;gap:.75rem;flex-shrink:0;padding:1rem 1.25rem;padding-bottom:max(1rem,env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--bg-elevated)}.recipes-form__cancel{background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:.9rem;padding:.5rem 1rem;min-height:44px;cursor:pointer;transition:border-color .3s,color .3s,background-color .3s}.recipes-form__cancel:hover{border-color:var(--accent);color:var(--accent)}.recipes-form__cancel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipes-form__save{background:var(--accent);border:none;border-radius:10px;color:#fff;font-size:.9rem;font-weight:600;padding:.5rem 1.25rem;min-height:44px;cursor:pointer;transition:background-color .3s}.recipes-form__save:hover:not(:disabled){background:var(--accent-hover)}.recipes-form__save:focus-visible:not(:disabled){outline:2px solid var(--accent);outline-offset:2px}.recipes-form__save:disabled{opacity:.6;cursor:not-allowed}.add-item-modal-overlay{position:fixed;inset:0;z-index:1100;background:color-mix(in srgb,var(--text) 35%,transparent);display:flex;align-items:center;justify-content:center;padding:1rem}.add-item-modal{width:min(100%,22rem);background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.add-item-modal__header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.add-item-modal__header h2{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.add-item-modal__close{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer}.add-item-modal__close:hover{color:var(--text);background:var(--surface-hover)}.add-item-modal__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.add-item-modal__body{display:flex;flex-direction:column;gap:.85rem;padding:1rem}.add-item-modal__field{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--text)}.add-item-modal__field input{padding:.55rem .75rem;min-height:44px;font-size:1rem;font-family:inherit;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text);transition:border-color .3s ease}.add-item-modal__field input:focus{border-color:var(--accent);outline:none}.add-item-modal__field input:disabled{opacity:.6}.add-item-modal__actions{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem 1rem;border-top:1px solid var(--border)}.add-item-modal__cancel,.add-item-modal__submit{padding:.5rem 1rem;min-height:2.5rem;font-size:.9rem;font-weight:600;font-family:inherit;border-radius:6px;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease,transform .3s ease}.add-item-modal__cancel:active:not(:disabled),.add-item-modal__submit:active:not(:disabled){transform:scale(.98)}.add-item-modal__cancel:disabled,.add-item-modal__submit:disabled{opacity:.55;cursor:not-allowed}.add-item-modal__cancel{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.add-item-modal__cancel:hover:not(:disabled){color:var(--text);border-color:var(--border-hover);background:var(--surface-hover)}.add-item-modal__submit{background:var(--accent);border:1px solid var(--accent);color:#fff}.add-item-modal__submit:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.shopping-list-item__main{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;flex:1;display:flex;align-items:center;gap:.75rem;min-width:0;margin:-.35rem 0;padding:.35rem .75rem;border:none;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:6px}.shopping-list-item__main:hover{background:color-mix(in srgb,var(--border) 45%,var(--surface-hover))}.shopping-list-item__main:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shopping-list-item__content{flex:1;min-width:0;display:flex;flex-direction:column}.shopping-list-item__edit-btn{flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color .3s ease,background-color .3s ease}.shopping-list-item__edit-btn:hover{color:var(--accent);background:color-mix(in srgb,var(--border) 45%,var(--surface-hover))}.shopping-list-item__edit-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shopping-list-item__edit{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.shopping-list-item__edit input{width:100%;padding:.4rem .55rem;font:inherit;font-size:.88rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text)}.shopping-list-item__edit input:focus{border-color:var(--accent);outline:none}.shopping-list-item__edit-row{display:flex;gap:.35rem}.shopping-list-item__edit-row input{flex:1;min-width:0}.shopping-list-item__edit-actions{display:flex;gap:.35rem;justify-content:flex-end}.shopping-list-item__edit-actions button{padding:.3rem .65rem;min-height:1.75rem;font:inherit;font-size:.8rem;font-weight:600;border-radius:6px;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.shopping-list-item__edit-actions button:first-child{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.shopping-list-item__edit-actions button:last-child{background:var(--accent);border:1px solid var(--accent);color:#fff}.shopping-list-item__edit-actions button:disabled{opacity:.6;cursor:not-allowed}:global(.app-content:has(.shopping-list-page--shell)){display:flex;flex-direction:column;overflow:hidden;min-height:0}.shopping-list-page{max-width:420px;width:100%;margin:0 auto}.shopping-list-page--shell{display:flex;flex-direction:column;height:100%;min-height:0}.shopping-list-top{flex-shrink:0;position:sticky;top:0;z-index:10;background:var(--bg)}.shopping-list-page__title{font-size:1.5rem;font-weight:700;color:var(--text);margin:0 0 1rem;letter-spacing:-.01em}.shopping-list-page__loading{padding:2rem 1rem;color:var(--text-muted);text-align:center}.shopping-list-page__empty,.shopping-list-page__empty-setup{padding:2rem 1rem;color:var(--text-muted);line-height:1.5;text-align:center}.shopping-list-page__empty p,.shopping-list-page__empty-setup p{margin:0 0 .5rem}.shopping-list-page__empty-setup{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}.shopping-list-page__cta{padding:.65rem 1.25rem;min-height:44px;font-size:.95rem;font-weight:600;font-family:inherit;background:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:background-color .3s ease,opacity .3s ease}.shopping-list-page__cta:hover{background:var(--accent-hover)}.shopping-list-page__cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shopping-list-page__cta:disabled{opacity:.6;cursor:not-allowed}.shopping-list-page__link-btn{background:none;border:none;padding:.35rem .5rem;font:inherit;font-size:.9rem;color:var(--link);cursor:pointer;text-decoration:underline;transition:color .3s ease,opacity .3s ease}.shopping-list-page__link-btn:hover{color:var(--accent)}.shopping-list-page__guest-overlay{position:relative;min-height:280px;border-radius:10px;overflow:hidden}.shopping-list-page__guest-center{display:flex;align-items:center;justify-content:center;min-height:280px;padding:2rem 1rem}.shopping-list-page__guest{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:320px}.shopping-list-page__guest-icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin-bottom:1rem;color:var(--text-muted)}.shopping-list-page__guest-text{margin:0 0 .35rem;font-size:1rem;font-weight:600;color:var(--text)}.shopping-list-page__guest-sub{margin:0 0 1.25rem;font-size:.9rem;color:var(--text-muted);line-height:1.45}.shopping-list-header{padding:1.15rem 1rem .65rem;border-bottom:1px solid var(--border);background:var(--bg)}.shopping-list-header__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.shopping-list-header__options-wrap{position:relative;flex-shrink:0;margin:-.15rem -1rem 0 0}.shopping-list-header__options-btn{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer}.shopping-list-header__options-btn:hover{color:var(--text);background:var(--surface-hover)}.shopping-list-header__options-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shopping-list-header__options-btn,.shopping-list-header__options-btn:hover{color:var(--text)}.shopping-list-header__options-menu{position:absolute;top:calc(100% + .35rem);right:0;min-width:10rem;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px color-mix(in srgb,var(--text) 12%,transparent);z-index:20}.shopping-list-header__options-item{display:block;width:100%;padding:.55rem .65rem;text-align:left;font:inherit;font-size:.9rem;background:transparent;border:none;border-radius:6px;color:var(--text);cursor:pointer;transition:background-color .3s ease,color .3s ease}.shopping-list-header__options-item:hover{background:var(--surface-hover)}.shopping-list-header__options-item--danger{color:var(--error)}.shopping-list-header__options-item--danger:hover{background:color-mix(in srgb,var(--error) 8%,var(--surface))}.shopping-list-header__title{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.shopping-list-header__switcher-wrap{position:relative;margin-top:.2rem}.shopping-list-header__switcher{background:none;border:none;padding:0;font:inherit;font-size:.82rem;color:var(--text-muted);cursor:pointer;transition:color .3s ease}.shopping-list-header__switcher:hover{color:var(--text)}.shopping-list-header__switcher-menu{position:absolute;top:calc(100% + .35rem);left:0;min-width:11rem;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px color-mix(in srgb,var(--text) 12%,transparent);z-index:20}.shopping-list-header__switcher-item{display:block;width:100%;padding:.55rem .65rem;min-height:2.25rem;text-align:left;font:inherit;font-size:.9rem;background:transparent;border:none;border-radius:6px;color:var(--text);cursor:pointer;transition:background-color .3s ease,color .3s ease}.shopping-list-header__switcher-item:hover{background:var(--surface-hover)}.shopping-list-header__switcher-item--active{color:var(--accent);font-weight:600}.shopping-list-header__members{display:flex;align-items:center;gap:.35rem;margin-top:.55rem;flex-wrap:wrap}.shopping-list-header__member{position:relative;display:inline-flex;align-items:center}.shopping-list-header__member-remove{position:absolute;top:-.35rem;right:-.35rem;width:1rem;height:1rem;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.65rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:color .3s ease,border-color .3s ease,background-color .3s ease}.shopping-list-header__member-remove:hover:not(:disabled){color:var(--error);border-color:var(--error)}.shopping-list-header__member-remove:disabled{opacity:.5;cursor:not-allowed}.shopping-list-header__avatar{width:1.65rem;height:1.65rem;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:600;color:var(--text-muted);flex-shrink:0}.shopping-list-header__avatar--member{position:relative;cursor:default}.shopping-list-header__avatar--member:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + .4rem);left:50%;z-index:30;padding:.28rem .5rem;border-radius:6px;background:var(--text);color:var(--bg);font-size:.72rem;font-weight:500;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%) translateY(4px);transition:opacity .3s ease,transform .3s ease}.shopping-list-header__avatar--member:before{content:"";position:absolute;bottom:calc(100% + .15rem);left:50%;z-index:30;border:.28rem solid transparent;border-top-color:var(--text);pointer-events:none;opacity:0;transform:translate(-50%);transition:opacity .3s ease}.shopping-list-header__avatar--member:hover:after,.shopping-list-header__avatar--member:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.shopping-list-header__avatar--member:hover:before,.shopping-list-header__avatar--member:focus-visible:before{opacity:1}.shopping-list-header__avatar--add{border-style:dashed;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.85rem;transition:border-color .3s ease,color .3s ease,background-color .3s ease}.shopping-list-header__avatar--add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.shopping-list-add-trigger{padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg)}.shopping-list-add-trigger__btn{width:100%;min-height:44px;padding:.55rem 1rem;border-radius:10px;border:1px solid var(--accent);background:var(--accent-muted);color:var(--accent);font:inherit;font-size:.92rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease,transform .3s ease}.shopping-list-add-trigger__btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 18%,var(--surface));border-color:var(--accent-hover);color:var(--accent-hover)}.shopping-list-add-trigger__btn:active:not(:disabled){transform:scale(.99)}.shopping-list-add-trigger__btn:disabled{opacity:.55;cursor:not-allowed}.shopping-list-content{flex:1;overflow-y:auto;padding-bottom:1rem}.shopping-list-category{border-bottom:1px solid var(--border)}.shopping-list-category__label{padding:.85rem 1rem .35rem;margin:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.shopping-list-category__items{list-style:none;margin:0;padding:0}.shopping-list-item{display:flex;align-items:center;gap:.35rem;padding:.35rem .75rem .35rem .5rem;min-height:44px}.shopping-list-item__check{width:1.35rem;height:1.35rem;border-radius:50%;border:2px solid var(--text-muted);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;padding:0;pointer-events:none;transition:border-color .3s ease,background-color .3s ease,color .3s ease}.shopping-list-item__check--done{background:var(--accent);border-color:var(--accent);color:#fff;font-size:.75rem;font-weight:700;line-height:1}.shopping-list-item__main:hover .shopping-list-item__check:not(.shopping-list-item__check--done){border-color:var(--accent)}.shopping-list-item__name{font-size:.95rem;color:var(--text);line-height:1.35}.shopping-list-item__meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.15rem}.shopping-list-item__qty{font-size:.75rem;color:var(--text-muted);background:var(--surface);border-radius:6px;padding:.05rem .4rem}.shopping-list-item__note{font-size:.75rem;color:var(--text-muted);font-style:italic}.shopping-list-item__added-by{font-size:.68rem;color:var(--text-muted);flex-shrink:0;max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-list-item__remove{flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;font-size:1.1rem;line-height:1;color:var(--text-muted);cursor:pointer;transition:color .3s ease,background-color .3s ease}.shopping-list-item__remove:hover{color:var(--error);background:color-mix(in srgb,var(--border) 45%,var(--surface-hover))}.shopping-list-item__remove:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shopping-list-item--checked .shopping-list-item__name,.shopping-list-item--checked .shopping-list-item__qty,.shopping-list-item--checked .shopping-list-item__note{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--text-muted)}.shopping-list-checked{margin-top:.35rem;border-top:1px solid var(--border)}.shopping-list-checked__header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem}.shopping-list-checked__toggle{background:none;border:none;padding:0;font:inherit;font-size:.82rem;color:var(--text-muted);cursor:pointer;transition:color .3s ease}.shopping-list-checked__toggle:hover{color:var(--text)}.shopping-list-checked__clear{background:none;border:none;padding:.25rem .35rem;font:inherit;font-size:.82rem;color:var(--accent);cursor:pointer;transition:color .3s ease,opacity .3s ease}.shopping-list-checked__clear:hover{color:var(--accent-hover)}.shopping-list-checked__clear--confirm{font-weight:700;color:var(--error)}.shopping-list-checked__clear--confirm:hover{color:var(--error)}.shopping-list-bottom-bar{flex-shrink:0;background:var(--bg);border-top:1px solid var(--border);padding:.6rem 1rem;display:flex;gap:.45rem}.shopping-list-bottom-bar__btn{flex:1;min-height:44px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.shopping-list-bottom-bar__btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.shopping-list-bottom-bar__btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.shopping-list-bottom-bar__btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.shopping-list-modal-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--text) 35%,transparent);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.shopping-list-modal{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.shopping-list-modal--tall{max-height:min(80vh,520px);display:flex;flex-direction:column}.shopping-list-modal__header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.shopping-list-modal__header h2{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.shopping-list-modal__close{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer}.shopping-list-modal__close:hover{color:var(--text);background:var(--surface-hover)}.shopping-list-modal__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shopping-list-modal__close{width:2rem;height:2rem}.shopping-list-modal__close span{display:flex;align-items:center;justify-content:center;line-height:1;font-size:1.5rem;transform:translateY(-.04em);font-size:1.65rem}.shopping-list-modal__body{padding:1rem}.shopping-list-modal__body--scroll{overflow-y:auto;flex:1}.shopping-list-modal__hint{margin:0 0 1rem;font-size:.88rem;color:var(--text-muted);line-height:1.45}.shopping-list-modal__loading{margin:0;color:var(--text-muted);font-size:.9rem}.shopping-list-modal__code-row{display:flex;align-items:center;gap:.5rem}.shopping-list-modal__link-row{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}.shopping-list-modal__link-input{flex:1;min-width:0;padding:.45rem .65rem;font:inherit;font-size:.78rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted)}.shopping-list-modal__search{width:100%;margin-bottom:.75rem;padding:.5rem .75rem;font:inherit;font-size:.9rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text)}.shopping-list-modal__search:focus{border-color:var(--accent);outline:none}.shopping-list-modal__code{flex:1;padding:.65rem .75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;font-size:1.1rem;font-weight:700;letter-spacing:.08em;color:var(--text)}.shopping-list-modal__copy{padding:.55rem .85rem;min-height:44px;font-size:.88rem;font-weight:600;font-family:inherit;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;transition:background-color .3s ease,opacity .3s ease}.shopping-list-modal__copy:hover{background:var(--accent-hover)}.shopping-list-modal__copy:disabled{opacity:.5;cursor:not-allowed}.shopping-list-modal__field{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--text)}.shopping-list-modal__field input{padding:.55rem .75rem;min-height:44px;font-size:1rem;font-family:inherit;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text)}.shopping-list-modal__field input:focus{border-color:var(--accent);outline:none}.shopping-list-modal__actions{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem 1rem;border-top:1px solid var(--border)}.shopping-list-modal__cancel,.shopping-list-modal__submit{padding:.5rem 1rem;min-height:2.5rem;font-size:.9rem;font-weight:600;font-family:inherit;border-radius:6px;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.shopping-list-modal__cancel{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.shopping-list-modal__cancel:hover{color:var(--text);border-color:var(--text-muted)}.shopping-list-modal__submit{background:var(--accent);border:1px solid var(--accent);color:#fff}.shopping-list-modal__submit:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.shopping-list-modal__submit:disabled{opacity:.55;cursor:not-allowed}.shopping-list-recipe-picker{list-style:none;margin:0;padding:0}.shopping-list-recipe-picker__btn{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.75rem;margin-bottom:.35rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;text-align:left;cursor:pointer;transition:background-color .3s ease,border-color .3s ease}.shopping-list-recipe-picker__btn:hover{border-color:var(--accent);background:var(--accent-muted)}.shopping-list-recipe-picker__title{font-size:.95rem;font-weight:600;color:var(--text)}.shopping-list-recipe-picker__meta{font-size:.78rem;color:var(--text-muted)}.docs-page{max-width:900px}.doc-section{margin-block-end:1rem;border:1px solid var(--border);border-radius:10px;overflow:hidden}.doc-section[open] .doc-section__summary{border-block-end:1px solid var(--border);background:var(--surface)}.doc-section__summary{display:flex;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-weight:600;font-size:1rem;color:var(--text);cursor:pointer;list-style:none;transition:background .3s}.doc-section__summary::-webkit-details-marker{display:none}.doc-section__summary:before{content:"";width:0;height:0;border-inline-start:6px solid var(--accent);border-block:5px solid transparent;transform:rotate(0);transition:transform .3s}.doc-section[open] .doc-section__summary:before{transform:rotate(90deg)}.doc-section__summary:hover{background:var(--surface-hover)}.doc-section__content{padding:1.5rem;background:var(--bg-elevated)}.doc-section__content p{margin:0 0 1rem}.doc-section__content ul,.doc-section__content ol{margin:0 0 1rem;padding-inline-start:1.5em}.doc-section__content li{margin-block-end:.25rem}.docs-page__header{margin-bottom:2rem}.docs-page__header h1{font-size:1.75rem;font-weight:700;color:var(--text);margin:0 0 .5rem}.docs-page__header p{font-size:1rem;color:var(--text-muted);margin:0}.docs-page__content{font-size:.95rem;line-height:1.6;color:var(--text)}.docs-page__content h1,.docs-page__content h2,.docs-page__content h3,.docs-page__content h4{margin-block-start:2rem;margin-block-end:1rem;color:var(--text)}.docs-page__content h1{font-size:1.5rem}.docs-page__content h2{font-size:1.3rem;border-block-end:1px solid var(--border);padding-block-end:.5rem}.docs-page__content h3{font-size:1.15rem}.docs-page__content h4{font-size:1.05rem}.docs-page__content p{margin-block-end:1rem}.docs-page__content ul,.docs-page__content ol{margin-block-end:1rem;padding-inline-start:1.5em}.docs-page__content li{margin-block-end:.25rem}.docs-page__content code{background:var(--surface);padding:.15em .4em;border-radius:6px;font-size:.9em;font-family:ui-monospace,monospace}.docs-page__content pre{background:var(--surface);padding:1rem;border-radius:10px;overflow-x:auto;margin-block-end:1rem}.docs-page__content pre code{background:none;padding:0}.docs-page__content hr{border:none;border-block-start:1px solid var(--border);margin-block:2rem}.docs-page__content blockquote{margin-block:1rem;padding-inline-start:1.5rem;border-inline-start:4px solid var(--accent);color:var(--text-muted)}.docs-page__content table{width:100%;border-collapse:collapse;margin-block-end:1rem}.docs-page__content table th,.docs-page__content table td{padding:.5rem 1rem;border:1px solid var(--border);text-align:start}.docs-page__content table th{background:var(--surface);font-weight:600}.docs-page__content a{color:var(--link)}.docs-page__content a:hover{color:var(--link-hover)}.format-chip-list{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.format-chip-list__chip{display:inline-flex;align-items:center;padding:.25rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500;line-height:1.3}.format-chip-list--supported .format-chip-list__chip{background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--text);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.format-chip-list--unsupported .format-chip-list__chip{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.format-chip-list--neutral .format-chip-list__chip{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border)}.capability-section{margin-block-end:2rem}.capability-section__title{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 .5rem}.capability-section__note{font-size:.9rem;color:var(--text-muted);margin:0 0 1rem;max-width:42rem}.capabilities-page{max-width:900px}.capabilities-page__header{margin-bottom:2rem}.capabilities-page__header h1{font-size:1.75rem;font-weight:700;color:var(--text);margin:0 0 .5rem}.capabilities-page__header p{font-size:1rem;color:var(--text-muted);margin:0}.capabilities-page__tagline{margin-top:.5rem!important;font-size:.9rem!important;font-weight:600;color:var(--accent)!important}.capabilities-page__local{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.5rem;margin-bottom:2rem;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--bg-elevated))}.capabilities-page__local p{margin:0;font-size:.9rem;color:var(--text-muted)}.capabilities-page__badge{display:inline-flex;align-self:flex-start;padding:.25rem 1rem;border-radius:9999px;font-size:.8rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.capabilities-page__groups{display:flex;flex-direction:column;gap:1.5rem}.capabilities-page__group-title{font-size:.95rem;font-weight:600;color:var(--text);margin:0 0 .5rem}.capabilities-page__footer{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border)}.capabilities-page__footer a{color:var(--link);font-weight:500;text-decoration:none}.capabilities-page__footer a:hover{color:var(--link-hover);text-decoration:underline}.tori-cross-link--card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:2rem;padding:1.5rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);box-shadow:var(--shadow);transition:background-color .3s ease,border-color .3s ease}.tori-cross-link--card:hover{background:color-mix(in srgb,var(--accent-muted) 55%,var(--bg-elevated));border-color:var(--border-hover)}.tori-cross-link__brand{display:flex;align-items:flex-start;gap:1rem;min-width:min(100%,20rem);flex:1}.tori-cross-link__logo-wrap{width:40px;height:40px;border-radius:50%;overflow:hidden;background:#12121f;flex-shrink:0;clip-path:circle(50%)}.tori-cross-link__logo{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.tori-cross-link__mark{width:18px;height:18px;border-radius:50%;object-fit:cover}.tori-cross-link__title{font-size:1.1rem;font-weight:700;color:var(--text);margin:0}.tori-cross-link__body{margin:.5rem 0 0;color:var(--text-muted);max-width:36rem;font-size:.9375rem;line-height:1.45}.tori-cross-link__cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 1.5rem;border-radius:10px;border:none;background:var(--accent);color:#fff;text-decoration:none;font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .3s ease}.tori-cross-link__cta:hover{background:var(--accent-hover);color:#fff}.tori-cross-link--inline{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0 .5rem;color:var(--accent);font-weight:600;font-size:.875rem;text-decoration:none;border-radius:6px;transition:background-color .3s ease,color .3s ease}.tori-cross-link--inline:hover{background:var(--accent-muted);color:var(--accent-hover)}[data-theme=dark] .tori-cross-link--card{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-lg)}[data-theme=dark] .tori-cross-link--card:hover{background:var(--accent-muted);border-color:var(--border-hover)}[data-theme=dark] .tori-cross-link--inline{color:var(--accent)}[data-theme=dark] .tori-cross-link--inline:hover{background:var(--accent-muted);color:var(--accent-hover)}button,input[type=button],input[type=submit],input[type=reset],input[type=checkbox],select,summary{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease}[class*=-btn],[class*=__btn],[class*=__tag],[class*=__chip],[class*=__close],[class*=__ingredient],[class*=__step],[class*=__add],[class*=__cancel],[class*=__save],[class*=__edit],[class*=__list-btn],[class*=__keep-awake],[class*=__servings-btn],[class*=__row-remove],[class*=__folder-btn],[class*=__new],[class*=__cta],[class*=__card-btn],[class*=__card],[class*=__tool-card],[class*=__nav-link],[class*=__sidebar-link],[class*=__upload],[class*=__check-box],[class*=__step-check],[class*=__step-timer],[class*=__field] input,[class*=__field] textarea,[class*=__field] select,[class*=__search],[class*=__folder-filter]{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease}.settings-page{max-width:480px}.settings-page__header{margin-bottom:2rem}.settings-page__header h1{margin:0 0 .5rem;font-size:1.5rem;color:var(--text)}.settings-page__header p{margin:0;color:var(--text-muted);font-size:.95rem}.settings-page__banner{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem 1.5rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated)}.settings-page__banner p{flex:1;margin:0;color:var(--text-muted);font-size:.9rem}.settings-page__hint{margin:.25rem 0 0;color:var(--text-muted);font-size:.8rem}.settings-page__hint--section{margin:-.5rem 0 1rem}.settings-page__dietary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.settings-page__dietary-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.settings-page__dietary-row .settings-page__label{margin:0;color:var(--text);font-size:.9rem;flex:1 1 auto;min-width:0}.settings-page__segmented--compact{flex:0 0 auto;min-width:7.5rem}.settings-page__segmented--compact .settings-page__segment{min-height:44px;padding:.5rem 1rem;font-size:.85rem}.settings-page__btn{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:.5rem 1.5rem;font-weight:600;cursor:pointer}.settings-page__btn:hover{background:var(--accent-hover)}.settings-page__section{margin-bottom:2rem;padding:1.5rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated)}.settings-page__section h2{margin:0 0 1rem;font-size:1rem;color:var(--text)}.settings-page__field{display:flex;flex-direction:column;gap:.25rem}.settings-page__label{font-size:.85rem;color:var(--text-muted)}.settings-page__segmented{display:flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.settings-page__segment{flex:1;padding:.5rem 1rem;border:none;border-radius:4px;background:transparent;color:var(--text-muted);font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.settings-page__segment:hover:not(.settings-page__segment--active){color:var(--text)}.settings-page__segment--active{background:var(--accent);color:#fff}.settings-page select{padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit}.settings-page__profile{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0 0 1.5rem}.settings-page__profile dt{margin:0;font-size:.85rem;color:var(--text-muted)}.settings-page__profile dd{margin:0;font-size:.95rem;color:var(--text);word-break:break-word}.settings-page__actions{display:flex;flex-direction:column;gap:.5rem}.settings-page__action-btn{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease,filter .3s ease;display:flex;align-items:center;justify-content:center;width:100%;padding:.5rem 1rem;border:1px solid transparent;border-radius:10px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}.settings-page__action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-page__action-btn--password{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 38%,var(--border));color:var(--accent)}.settings-page__action-btn--password:hover{background:color-mix(in srgb,var(--accent) 20%,var(--surface));border-color:var(--accent);color:var(--accent-hover)}.settings-page__action-btn--password:active{background:color-mix(in srgb,var(--accent) 28%,var(--surface))}.settings-page__action-btn--signout{background:var(--surface);border-color:var(--border);color:var(--text-muted)}.settings-page__action-btn--signout:hover{background:color-mix(in srgb,var(--error) 14%,var(--surface));border-color:color-mix(in srgb,var(--error) 50%,var(--border));color:var(--error)}.settings-page__action-btn--signout:active{background:color-mix(in srgb,var(--error) 22%,var(--surface))}.settings-page__save-row{margin-bottom:2rem}.settings-page__save-btn{width:100%;padding:.5rem 1.5rem;border:none;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,opacity .3s ease}.settings-page__save-btn:hover:not(:disabled){background:var(--accent-hover)}.settings-page__save-btn:disabled{opacity:.65;cursor:not-allowed}.settings-page__save-hint{margin:.25rem 0 0;font-size:.8rem;color:var(--text-muted)}html:has(.sous-page),body:has(.sous-page),#root:has(.sous-page){overflow:hidden;height:100%}.sous-page{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;height:100%;max-height:100%;width:100%;max-width:72rem;gap:.5rem;overflow:hidden}.sous-page__header{flex-shrink:0}.sous-page__header h1{margin:0 0 .25rem;font-size:1.35rem;color:var(--text)}.sous-page__header p{margin:0;color:var(--text-muted);font-size:.9rem}.sous-page__workspace{flex:1;min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(7.5rem,30%);grid-template-areas:"chat" "trace";gap:1rem;overflow:hidden}.sous-page__chat{grid-area:chat;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);overflow:hidden}.sous-page__chat .sous-chat{height:100%;min-height:0}.sous-page__trace{grid-area:trace;display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);overflow:hidden}.sous-page__trace-head{flex-shrink:0;padding:.5rem 1rem;border-bottom:1px solid var(--border)}.sous-page__trace-head h2{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text)}.sous-page__trace-head p{margin:.25rem 0 0;font-size:.8rem;line-height:1.35;color:var(--text-muted)}.sous-page__trace-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1rem}.sous-page__trace-empty{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.45}.sous-page__steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.sous-page__step{padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.sous-page__step--running{border-color:var(--accent)}.sous-page__step-label{margin:0;font-size:.85rem;font-weight:600;color:var(--text)}.sous-page__step-detail,.sous-page__step-status{margin:.25rem 0 0;font-size:.8rem;line-height:1.4;color:var(--text-muted)}.sous-page__step-status{color:var(--accent);font-weight:600}@media(min-width:900px){.sous-page__workspace{grid-template-columns:minmax(0,1.35fr) 20rem;grid-template-rows:minmax(0,1fr);grid-template-areas:"chat trace"}}.sous-page__cta{align-self:center;min-height:44px;padding:.5rem 1.5rem;border:none;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,opacity .3s ease}.sous-page__cta:hover:not(:disabled){background:var(--accent-hover);color:#fff}.sous-page__guest-overlay{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width, 0);z-index:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.sous-page__guest-center{pointer-events:auto;display:flex;flex-direction:column;align-items:center;text-align:center}.sous-page__guest{text-align:center;padding:2.5rem 2rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;max-width:420px;width:100%;margin:0 1rem}.sous-page__guest-icon{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;margin:0 auto 1.5rem;border-radius:9999px;background:var(--accent-muted);color:var(--accent)}.sous-page__guest-icon svg{width:2.25rem;height:2.25rem}.sous-page__guest-text{margin:0;font-size:1.1rem;line-height:1.45;color:var(--text);font-weight:500}.sous-page__guest-sub{margin:.5rem 0 2rem;font-size:.9rem;line-height:1.4;color:var(--text-muted);max-width:20em}.static-page{max-width:900px}.static-page__header{margin-bottom:2rem}.static-page__header h1{font-size:1.75rem;font-weight:700;color:var(--text);margin:0 0 .5rem}.static-page__header p{font-size:1rem;color:var(--text-muted);margin:0}.static-page__tagline{margin-top:.5rem!important;font-size:.9rem!important;font-weight:600;color:var(--accent)!important}.static-page__badge{display:inline-block;align-self:flex-start;padding:.25rem .65rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-elevated));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:6px}.static-page__callout{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.5rem;margin-bottom:2rem;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--bg-elevated))}.static-page__callout p{margin:0;font-size:.95rem;color:var(--text);line-height:1.55}.static-page__section{margin-bottom:2rem}.static-page__section h2{font-size:1.2rem;font-weight:600;color:var(--text);margin:0 0 1rem}.static-page__section p,.static-page__section li{font-size:.95rem;line-height:1.6;color:var(--text)}.static-page__section p{margin:0 0 1rem}.static-page__section ul{margin:0 0 1rem;padding-inline-start:1.5em}.static-page__section li{margin-block-end:.25rem}.static-page__table-wrap{overflow-x:auto;margin-bottom:1rem}.static-page table{width:100%;border-collapse:collapse;font-size:.9rem}.static-page table th,.static-page table td{padding:.5rem 1rem;border:1px solid var(--border);text-align:start;vertical-align:top}.static-page table th{background:var(--surface);font-weight:600;color:var(--text)}.static-page table td{color:var(--text)}.static-page__footer{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border)}.static-page__footer a{color:var(--link);font-weight:500;text-decoration:none}.static-page__footer a:hover{color:var(--link-hover);text-decoration:underline}.not-found-page{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:max(2rem,env(safe-area-inset-top,0px) + 3.5rem) max(1rem,env(safe-area-inset-right,0px) + .5rem) max(1rem,env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px));background:linear-gradient(160deg,#f3ebe0 0%,var(--bg) 42%,color-mix(in srgb,var(--accent) 16%,var(--bg)) 100%)}.not-found-page__theme{position:fixed;top:max(.5rem,env(safe-area-inset-top,0px));right:max(.5rem,env(safe-area-inset-right,0px));z-index:2;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--link);cursor:pointer}.not-found-page__theme:hover{background:var(--surface-hover);border-color:var(--link);color:var(--link-hover)}.not-found-page__theme svg{display:block}.not-found-page__panel{width:min(100%,26rem);display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:2rem 1.5rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg);animation:not-found-enter .55s ease both}.not-found-page__logo-wrap{width:72px;height:72px;display:grid;place-items:center;border-radius:9999px;overflow:hidden;background:var(--accent-muted);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 28%,transparent);animation:not-found-logo .7s ease .08s both}.not-found-page__logo{width:38px;height:auto;display:none;object-fit:contain}.not-found-page__logo--charcoal{display:block}.not-found-page__brand{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1}.not-found-page__code{margin:.25rem 0 0;font-size:clamp(3.5rem,14vw,4.75rem);font-weight:800;letter-spacing:-.04em;line-height:.9;color:var(--accent);animation:not-found-code .65s ease .12s both}.not-found-page__title{margin:0;font-size:clamp(1.35rem,4vw,1.65rem);font-weight:700;color:var(--text);line-height:1.2}.not-found-page__copy{margin:0;max-width:22rem;font-size:.975rem;line-height:1.5;color:var(--text-muted)}.not-found-page__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.5rem;width:100%}.not-found-page__btn{display:inline-flex;align-items:center;justify-content:center;min-width:10.5rem;min-height:44px;padding:.5rem 1.5rem;border-radius:10px;font-size:.95rem;font-weight:600;text-decoration:none}.not-found-page__btn--primary{border:none;background:var(--accent);color:#fff}.not-found-page__btn--primary:hover{background:var(--accent-hover);color:#fff}.not-found-page__btn--ghost{border:1px solid var(--border);background:transparent;color:var(--text)}.not-found-page__btn--ghost:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}@keyframes not-found-enter{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur(0)}}@keyframes not-found-logo{0%{opacity:0}to{opacity:1}}@keyframes not-found-code{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.not-found-page__panel,.not-found-page__logo-wrap,.not-found-page__code{animation:none}}[data-theme=dark] .not-found-page{background:radial-gradient(ellipse 80% 50% at 8% -8%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 55%),radial-gradient(ellipse 65% 40% at 100% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 50%),linear-gradient(165deg,#141416 0%,var(--bg) 50%,#221e1a 100%)}[data-theme=dark] .not-found-page__theme{color:var(--text-muted)}[data-theme=dark] .not-found-page__theme:hover{border-color:var(--accent);color:var(--accent)}[data-theme=dark] .not-found-page__logo-wrap{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}[data-theme=dark] .not-found-page__logo--charcoal{display:none}[data-theme=dark] .not-found-page__logo--white{display:block}[data-theme=dark] .not-found-page__code{color:color-mix(in srgb,var(--accent) 78%,var(--text))}[data-theme=dark] .not-found-page__btn--primary{color:#1a1a1d}
