:root,:root[data-theme=light]{--bg: #f5f7fb;--bg-elev: #ffffff;--bg-muted: #eef2f7;--bg-sunken: #f8fafc;--border: #e4e8ef;--border-strong: #cdd5e0;--text: #0f172a;--text-muted: #5b6677;--text-soft: #97a1b1;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-soft: #dbeafe;--primary-contrast: #ffffff;--danger: #dc2626;--danger-hover: #b91c1c;--danger-soft: #fee2e2;--success: #16a34a;--success-soft: #dcfce7;--warning: #d97706;--warning-soft: #fef3c7;--info: #0284c7;--info-soft: #e0f2fe;--cat-work: #ede9fe;--cat-work-fg: #6d28d9;--cat-cost: #d1fae5;--cat-cost-fg: #047857;--cat-idea: #dbeafe;--cat-idea-fg: #1d4ed8;--cat-problem: #fee2e2;--cat-problem-fg: #b91c1c;--cat-safety: #fef3c7;--cat-safety-fg: #b45309;--cat-other: #e7eaf0;--cat-other-fg: #374151;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow: 0 4px 14px rgba(15, 23, 42, .08);--shadow-lg: 0 18px 48px rgba(15, 23, 42, .16);--shadow-focus: 0 0 0 3px rgba(37, 99, 235, .18);--topbar-bg: rgba(255, 255, 255, .82);--backdrop: rgba(15, 23, 42, .45)}:root[data-theme=dark]{--bg: #0b1220;--bg-elev: #121a2c;--bg-muted: #1a2238;--bg-sunken: #0e1626;--border: #20293f;--border-strong: #2e3954;--text: #e6ecf6;--text-muted: #98a3b8;--text-soft: #6a7693;--primary: #60a5fa;--primary-hover: #93c5fd;--primary-soft: rgba(96, 165, 250, .18);--primary-contrast: #0b1220;--danger: #f87171;--danger-hover: #ef4444;--danger-soft: rgba(248, 113, 113, .18);--success: #4ade80;--success-soft: rgba(74, 222, 128, .16);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .16);--info: #38bdf8;--info-soft: rgba(56, 189, 248, .18);--cat-work: rgba(139, 92, 246, .18);--cat-work-fg: #c4b5fd;--cat-cost: rgba(16, 185, 129, .18);--cat-cost-fg: #6ee7b7;--cat-idea: rgba(59, 130, 246, .2);--cat-idea-fg: #93c5fd;--cat-problem: rgba(239, 68, 68, .2);--cat-problem-fg: #fca5a5;--cat-safety: rgba(245, 158, 11, .2);--cat-safety-fg: #fcd34d;--cat-other: rgba(148, 163, 184, .18);--cat-other-fg: #cbd5e1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 6px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .55);--shadow-focus: 0 0 0 3px rgba(96, 165, 250, .3);--topbar-bg: rgba(18, 26, 44, .78);--backdrop: rgba(2, 6, 23, .65)}:root{--radius: 14px;--radius-sm: 10px;--radius-lg: 20px;--header-h: 60px;--sidebar-w: 248px;--bottom-nav-h: 64px;--tap: 44px;--t-fast: .12s;--t-base: .18s;--ease: cubic-bezier(.4, 0, .2, 1);--fs-xs: clamp(11px, .7vw + 10px, 12px);--fs-sm: clamp(12px, .7vw + 11px, 13px);--fs-base: clamp(14px, .5vw + 13px, 15px);--fs-md: clamp(15px, .6vw + 14px, 16px);--fs-lg: clamp(17px, .8vw + 15px, 20px);--fs-xl: clamp(20px, 1.5vw + 16px, 26px);--fs-2xl: clamp(22px, 2vw + 16px, 32px);--pad-page: clamp(12px, 2.5vw, 28px);--gap: clamp(10px, 1.5vw, 16px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI Variable,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:var(--fs-base);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease);overflow-x:hidden;overflow-wrap:break-word}img,video,audio,canvas,svg{max-width:100%;height:auto;display:block}audio{width:100%}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}h1,h2,h3,h4{margin:0;font-weight:700;color:var(--text);letter-spacing:-.01em;line-height:1.2;overflow-wrap:break-word}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}input,textarea,select{font-family:inherit;font-size:16px;color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;height:var(--tap);font-weight:600;font-size:14px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--primary);color:var(--primary-contrast);cursor:pointer;transition:background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease);white-space:nowrap;user-select:none;touch-action:manipulation;min-width:var(--tap)}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--secondary{background:var(--bg-elev);color:var(--text);border-color:var(--border)}.btn--secondary:hover:not(:disabled){background:var(--bg-muted)}.btn--ghost{background:transparent;color:var(--text)}.btn--ghost:hover:not(:disabled){background:var(--bg-muted)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--danger-hover)}.btn--sm{height:36px;padding:0 12px;font-size:13px;min-width:36px}.btn--lg{height:50px;padding:0 22px;font-size:15px}.btn--block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background var(--t-fast),color var(--t-fast);flex-shrink:0}.icon-btn:hover{background:var(--bg-muted);color:var(--text)}.icon-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field__label{font-size:13px;font-weight:600;color:var(--text-muted)}.field__error{font-size:12px;color:var(--danger)}.field__hint{font-size:12px;color:var(--text-soft)}.input,.textarea,.select{width:100%;min-height:var(--tap);padding:10px 12px;background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}.input:hover,.textarea:hover,.select:hover{border-color:var(--border-strong)}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:var(--shadow-focus)}.textarea{resize:vertical;min-height:120px;line-height:1.55}.select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:clamp(14px,1.8vw,22px);min-width:0}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:var(--fs-xs);font-weight:600;border-radius:999px;background:var(--bg-muted);color:var(--text);line-height:1.25;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.badge--new{background:var(--info-soft);color:var(--info)}.badge--in_review{background:var(--warning-soft);color:var(--warning)}.badge--accepted{background:var(--success-soft);color:var(--success)}.badge--rejected{background:var(--danger-soft);color:var(--danger)}.badge--work_improvement{background:var(--cat-work);color:var(--cat-work-fg)}.badge--cost_saving{background:var(--cat-cost);color:var(--cat-cost-fg)}.badge--new_idea{background:var(--cat-idea);color:var(--cat-idea-fg)}.badge--problem{background:var(--cat-problem);color:var(--cat-problem-fg)}.badge--safety{background:var(--cat-safety);color:var(--cat-safety-fg)}.badge--other{background:var(--cat-other);color:var(--cat-other-fg)}.auth-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px 16px;background:radial-gradient(1200px 600px at 50% -200px,var(--primary-soft) 0%,transparent 60%),var(--bg)}.auth-card{width:100%;max-width:420px;background:var(--bg-elev);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:clamp(20px,4vw,36px) clamp(18px,5vw,32px)}.auth-card h1{font-size:var(--fs-xl);margin-bottom:4px}.auth-card p.sub{color:var(--text-muted);margin:0 0 20px;font-size:var(--fs-base)}.app-layout{display:flex;min-height:100dvh}.sidebar{width:min(80vw,var(--sidebar-w));background:var(--bg-elev);border-right:1px solid var(--border);padding:18px 12px env(safe-area-inset-bottom);display:flex;flex-direction:column;gap:4px;position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);transition:transform var(--t-base) var(--ease);z-index:40;box-shadow:var(--shadow-lg);overflow-y:auto;overscroll-behavior:contain}@media (min-width: 1024px){.sidebar{width:var(--sidebar-w)}}.sidebar.open{transform:translate(0)}.sidebar__brand{font-weight:700;font-size:1.05rem;padding:8px 12px 16px;display:flex;align-items:center;gap:10px;color:var(--primary);border-bottom:1px solid var(--border);margin-bottom:12px}.sidebar__link{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-sm);color:var(--text-muted);font-weight:500;font-size:14px;cursor:pointer;min-height:var(--tap);transition:background var(--t-fast),color var(--t-fast);background:transparent;border:none;text-align:left}.sidebar__link:hover{background:var(--bg-muted);color:var(--text);text-decoration:none}.sidebar__link.active{background:var(--primary-soft);color:var(--primary)}.sidebar-backdrop{position:fixed;inset:0;background:var(--backdrop);z-index:35;animation:fadeIn var(--t-base) var(--ease)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (min-width: 1024px){.sidebar{position:sticky;height:100vh;transform:none;box-shadow:none}.sidebar-backdrop{display:none}}.main{flex:1;min-width:0;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.topbar{height:var(--header-h);background:var(--topbar-bg);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad-page);position:sticky;top:0;z-index:20;gap:8px}.topbar>div:first-child{flex:1 1 auto;min-width:0;overflow:hidden}.topbar__title{font-weight:700;font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.topbar__right{display:flex;align-items:center;gap:6px;flex-shrink:0}.topbar__user{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:14px}.topbar__avatar{width:36px;height:36px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;font-size:var(--fs-base)}.topbar__user .name{display:none;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 640px){.topbar__user .name{display:inline-block}}.content{padding:var(--pad-page);max-width:1280px;width:100%;margin:0 auto;padding-bottom:calc(var(--pad-page) + var(--bottom-nav-h))}@media (min-width: 1024px){.content{padding-bottom:var(--pad-page)}}.content h1{margin-bottom:4px}.content>.subtitle{color:var(--text-muted);margin:0 0 16px;font-size:var(--fs-base)}.page-header{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.page-header__title{min-width:0}.page-header__actions{display:flex;gap:8px;flex-wrap:wrap;width:100%}.page-header__actions>.btn{flex:1 1 auto;min-width:0}@media (min-width: 640px){.page-header{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.page-header__actions{width:auto;flex-wrap:nowrap}.page-header__actions>.btn{flex:0 0 auto}}.detail-header{display:flex;flex-direction:column;gap:10px;margin-top:8px}.detail-header__main{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;flex-wrap:wrap}.detail-header__title{min-width:0;flex:1 1 240px;word-wrap:break-word}.detail-header__actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:var(--bottom-nav-h);background:var(--topbar-bg);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:stretch;padding-bottom:env(safe-area-inset-bottom);z-index:15}.bottom-nav__link{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);font-size:11px;font-weight:500;text-decoration:none;transition:color var(--t-fast)}.bottom-nav__link:hover,.bottom-nav__link.active{color:var(--primary);text-decoration:none}@media (min-width: 1024px){.bottom-nav{display:none}.content{padding-bottom:28px!important}}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media (min-width: 540px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}@media (min-width: 900px){.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}}.stat-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(12px,1.4vw,18px);box-shadow:var(--shadow-sm);position:relative;min-width:0}.stat-card__label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:500;margin-bottom:4px}.stat-card__value{font-size:clamp(1.2rem,2.4vw,1.8rem);font-weight:700;color:var(--text);line-height:1.1}.stat-card__icon{position:absolute;top:12px;right:12px;opacity:.55}.split-grid{display:grid;grid-template-columns:1fr;gap:var(--gap);margin-top:20px}@media (min-width: 1024px){.split-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}.suggestion-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(12px,1.4vw,18px);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--t-fast),box-shadow var(--t-base),border-color var(--t-fast);min-width:0}.suggestion-card:hover{box-shadow:var(--shadow);border-color:var(--border-strong)}.suggestion-card:active{transform:scale(.99)}.suggestion-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px;flex-wrap:wrap}.suggestion-card__title{font-weight:600;font-size:var(--fs-md);color:var(--text);min-width:0;word-wrap:break-word;flex:1 1 180px}.suggestion-card__meta{display:flex;flex-wrap:wrap;gap:8px;font-size:var(--fs-xs);color:var(--text-muted);margin-top:6px;align-items:center}.table-wrap{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th{text-align:left;font-weight:600;color:var(--text-muted);padding:12px 14px;background:var(--bg-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer;transition:background var(--t-fast)}.table tr.clickable:hover{background:var(--bg-muted)}.list-cards{display:flex;flex-direction:column;gap:10px}.list-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--t-fast),box-shadow var(--t-base);min-width:0}.list-card:active{transform:scale(.99)}.list-card__row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}.list-card__title{font-weight:600;font-size:var(--fs-md);word-wrap:break-word;min-width:0;flex:1 1 180px}.list-card__meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:6px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.list-card__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.list-card__actions>.btn{width:100%}.filters{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 520px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 900px){.filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.filters{grid-template-columns:repeat(4,minmax(0,1fr))}}.filters__search{grid-column:1 / -1}@media (min-width: 900px){.filters__search{grid-column:span 2}}.empty{text-align:center;padding:clamp(32px,6vw,56px) 20px;color:var(--text-muted);background:var(--bg-elev);border:1px dashed var(--border-strong);border-radius:var(--radius);font-size:var(--fs-sm)}.empty__icon{color:var(--text-soft);margin:0 auto 12px}.empty__title{font-weight:600;color:var(--text);margin-bottom:4px;font-size:var(--fs-md)}.skeleton{background:linear-gradient(90deg,var(--bg-muted) 0%,var(--bg-sunken) 50%,var(--bg-muted) 100%);background-size:200% 100%;animation:skeleton 1.4s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-row{height:64px}.toast-wrap{position:fixed;left:12px;right:12px;top:12px;display:flex;flex-direction:column;gap:10px;z-index:100;align-items:center;pointer-events:none}@media (min-width: 640px){.toast-wrap{left:auto;right:16px;top:16px;align-items:flex-end}}.toast{background:var(--bg-elev);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-sm);padding:12px 14px;box-shadow:var(--shadow);min-width:240px;max-width:100%;width:100%;font-size:14px;display:flex;align-items:flex-start;gap:10px;pointer-events:auto;animation:toast-in var(--t-base) var(--ease)}@media (min-width: 640px){.toast{max-width:380px}}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.toast--success{border-left-color:var(--success)}.toast--error{border-left-color:var(--danger)}.toast--warning{border-left-color:var(--warning)}.toast--info{border-left-color:var(--info)}.toast__icon{flex-shrink:0;margin-top:2px}.toast__close{margin-left:auto;background:transparent;border:none;cursor:pointer;color:var(--text-soft);padding:4px;border-radius:6px}.toast__close:hover{background:var(--bg-muted);color:var(--text)}.modal-backdrop{position:fixed;inset:0;background:var(--backdrop);display:flex;align-items:flex-end;justify-content:center;z-index:50;animation:fadeIn var(--t-base) var(--ease)}@media (min-width: 640px){.modal-backdrop{align-items:center;padding:16px}}.modal{background:var(--bg-elev);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:100%;max-height:92dvh;box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;animation:sheet-in var(--t-base) var(--ease);padding-bottom:env(safe-area-inset-bottom)}.modal__body{overflow-y:auto;flex:1}@media (min-width: 640px){.modal{border-radius:var(--radius-lg);max-width:520px;max-height:86vh;animation:modal-in var(--t-base) var(--ease);padding-bottom:0}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal__head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal__body{padding:16px 20px}.modal__foot{padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;background:var(--bg-sunken)}.attachments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}.attachment-tile{position:relative;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-muted);aspect-ratio:1;display:flex;align-items:center;justify-content:center}.attachment-tile img{width:100%;height:100%;object-fit:cover;display:block}.attachment-tile__remove{position:absolute;top:6px;right:6px;background:#0f172ab3;color:#fff;border:none;width:26px;height:26px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.attachment-file{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;flex-wrap:wrap}.attachment-file__name{flex:1 1 200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.attachment-file__remove{background:transparent;border:none;cursor:pointer;color:var(--danger)}.recorder{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap}.recorder>*{min-width:0}.recorder__dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:pulse 1.2s infinite;flex-shrink:0}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.recorder audio{width:100%;max-width:100%;min-width:0;flex:1 1 200px}.detail-grid{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 1024px){.detail-grid{grid-template-columns:2fr 1fr}}.detail-meta-row{display:flex;gap:8px;margin-bottom:6px;flex-wrap:wrap;align-items:center;font-size:var(--fs-sm)}.detail-meta-row>*{min-width:0}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:clamp(16px,2.4vw,24px);text-align:center;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast);color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:8px;font-size:var(--fs-sm);min-height:88px;justify-content:center}.dropzone:hover,.dropzone:focus-within{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.dropzone input{display:none}.sticky-cta{position:sticky;bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 70%,transparent);padding:12px 0 4px;margin:8px -4px 0;z-index:4;display:flex;gap:8px}.sticky-cta .btn{flex:1}@media (min-width: 1024px){.sticky-cta{position:static;background:none;padding:0;margin:0;justify-content:flex-end}.sticky-cta .btn{flex:0 0 auto}}.fab{position:fixed;right:16px;bottom:calc(var(--bottom-nav-h) + 16px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--primary-contrast);border:none;box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:14;transition:transform var(--t-fast),background var(--t-fast)}.fab:hover{background:var(--primary-hover)}.fab:active{transform:scale(.94)}@media (min-width: 768px){.fab{display:none}}.offline-banner{position:fixed;left:0;right:0;top:0;background:var(--warning);color:#1f2937;padding:8px 16px;text-align:center;font-size:13px;font-weight:600;z-index:200;display:flex;align-items:center;justify-content:center;gap:8px}.progress{height:4px;background:var(--bg-muted);border-radius:999px;overflow:hidden}.progress__bar{height:100%;background:var(--primary);transition:width var(--t-base) var(--ease)}@media (max-width: 767.98px){.hide-mobile,.desktop-only{display:none!important}}@media (min-width: 768px){.only-mobile,.mobile-only{display:none!important}}@media (min-width: 1024px){.menu-btn{display:none!important}}
