*{box-sizing:border-box}:root,[data-theme=dark]{--color-bg-app: #13142a;--color-surface-elevated: #1a1b35;--color-surface-base: #0a0b15;--color-surface-hover: #141528;--color-surface-popover: #090a15;--color-text: #dde3f0;--color-text-strong: #f1f5f9;--color-text-soft: #c8d2e0;--color-text-muted: #9ba5b8;--color-text-muted-2: #7a849a;--color-text-dim: #8890a4;--color-border: #1d1f35;--color-border-strong: #2c2f4a;--color-border-weak: #1c1f34;--color-input-bg: #09091a;--color-input-text: #f1f5f9;--color-primary: #3b7cf5;--color-primary-hover: #2d6ae8;--color-primary-strong: #2563eb;--color-primary-soft: #bfdbfe;--color-link: #93c5fd;--color-success-text: #86efac;--color-on-primary: #ffffff;--gradient-primary: linear-gradient(135deg, #4f8ef7 0%, #2563eb 100%);--color-primary-glow: rgba(79, 142, 247, .32);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-elevated: 0 4px 24px rgba(0, 0, 0, .5);--shadow-primary: 0 4px 16px rgba(79, 142, 247, .28);--modal-backdrop: rgba(4, 4, 18, .76);--modal-surface: #0d0e1e;--modal-surface-accent: #121428;--modal-shadow: 0 24px 48px rgba(2, 4, 16, .6), 0 8px 20px rgba(2, 4, 16, .4);--font-sans: "Inter", system-ui, -apple-system, sans-serif}[data-theme=light]{--color-bg-app: #f4f5f8;--color-surface-elevated: #ffffff;--color-surface-base: #ffffff;--color-surface-hover: #f0f1f6;--color-surface-popover: #ffffff;--color-text: #0f172a;--color-text-strong: #080e1c;--color-text-soft: #334155;--color-text-muted: #4e5c72;--color-text-muted-2: #64748b;--color-text-dim: #6b7280;--color-border: #e0e3ec;--color-border-strong: #c8cdd8;--color-border-weak: #dce0ea;--color-input-bg: #ffffff;--color-input-text: #0f172a;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-strong: #1d4ed8;--color-primary-soft: #1e3a8a;--color-link: #1d4ed8;--color-success-text: #166534;--color-on-primary: #ffffff;--gradient-primary: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);--color-primary-glow: rgba(37, 99, 235, .22);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .07);--shadow-elevated: 0 6px 24px rgba(15, 23, 42, .11);--shadow-primary: 0 4px 16px rgba(37, 99, 235, .2);--modal-backdrop: rgba(15, 23, 42, .35);--modal-surface: #ffffff;--modal-surface-accent: #f8fafc;--modal-shadow: 0 20px 40px rgba(15, 23, 42, .2), 0 6px 18px rgba(15, 23, 42, .12);--font-sans: "Inter", system-ui, -apple-system, sans-serif}html{overflow:hidden;height:100%}body{margin:0;font-family:var(--font-sans, "Inter", system-ui, -apple-system, sans-serif);background:var(--color-bg-app);color:var(--color-text);min-height:100%;height:100%;overflow:hidden;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{color:var(--color-text-strong)}button,[role=button]{cursor:pointer}button:disabled{cursor:default}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;position:relative;background:var(--color-surface-base);overflow:hidden}.login-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 85% 60% at -8% -8%,color-mix(in srgb,var(--color-primary) 14%,transparent),transparent 55%),radial-gradient(ellipse 65% 50% at 108% 108%,color-mix(in srgb,var(--color-primary-strong) 10%,transparent),transparent 55%),radial-gradient(ellipse 40% 40% at 50% 100%,color-mix(in srgb,var(--color-primary) 6%,transparent),transparent 50%)}.login-card{position:relative;z-index:1;background:var(--color-surface-elevated);border:1px solid var(--color-border-strong);padding:2rem;border-radius:18px;width:100%;max-width:380px;box-shadow:var(--shadow-elevated),0 0 0 1px color-mix(in srgb,var(--color-primary) 8%,transparent)}.login-brand{display:flex;align-items:center;gap:.85rem;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border)}.login-logo-circle{width:42px;height:42px;min-width:42px;border-radius:11px;background:var(--gradient-primary, var(--color-primary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;letter-spacing:.02em;box-shadow:var(--shadow-primary);flex-shrink:0}.login-brand-name{font-size:.95rem;font-weight:700;color:var(--color-text-strong);letter-spacing:-.01em}.login-brand-tagline{font-size:.73rem;color:var(--color-text-muted);margin-top:.12rem}.login-title{margin:0 0 1.15rem;font-size:1rem;font-weight:600;color:var(--color-text-strong)}.login-field{display:flex;flex-direction:column;gap:.28rem;margin-bottom:.85rem}.login-field label{display:block;font-size:.82rem;font-weight:500;color:var(--color-text-soft)}.login-field input{width:100%;padding:.62rem .82rem;border:1px solid var(--color-border-strong);border-radius:10px;background:var(--color-input-bg);color:var(--color-input-text);font-size:.95rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.login-field input::placeholder{color:var(--color-text-dim)}.login-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.login-error{color:#f87171;font-size:.84rem;margin:0 0 .65rem;padding:.5rem .65rem;border-radius:8px;background:#f871711a;border:1px solid rgba(248,113,113,.22)}[data-theme=light] .login-error{color:#991b1b}.login-submit{width:100%;padding:.72rem;min-height:44px;margin-top:.25rem;background:var(--gradient-primary, var(--color-primary));color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;letter-spacing:.01em;font-family:inherit;transition:opacity .15s ease,box-shadow .15s ease,transform .12s ease;box-shadow:var(--shadow-primary)}.login-submit:hover:not(:disabled){opacity:.88;box-shadow:0 6px 22px var(--color-primary-glow);transform:translateY(-1px)}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit:disabled{opacity:.65;cursor:not-allowed;transform:none}.app-layout{display:flex;min-height:100vh;height:100vh;overflow:hidden;--sidebar-width: 260px}.main-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);max-width:var(--sidebar-width);background:var(--color-surface-base);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:.75rem .75rem 1rem;gap:.75rem;overflow:visible;transition:width .14s ease,padding .14s ease;min-height:100vh;height:100vh;position:relative;z-index:40}.sidebar-header{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:10px;cursor:pointer}.sidebar-header:hover{background:var(--color-surface-hover)}.logo-circle{width:32px;height:32px;min-width:32px;min-height:32px;max-width:32px;max-height:32px;aspect-ratio:1 / 1;flex:0 0 auto;border-radius:9px;background:var(--gradient-primary, var(--color-primary-strong));display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px var(--color-primary-glow);transition:width .14s ease,height .14s ease,transform .14s ease}.logo-image{width:100%;height:100%;object-fit:contain}.sidebar-title .app-name{font-size:.9rem;font-weight:700;letter-spacing:-.01em;color:var(--color-text-strong)}.sidebar-title .app-subtitle{font-size:.71rem;color:var(--color-text-muted-2);margin-top:.05rem}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem;flex:1;min-height:0;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:.6rem;padding:.55rem .6rem;border-radius:10px;color:var(--color-text-muted);text-decoration:none;font-size:.875rem;font-weight:450;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.sidebar-link-badge{margin-left:.35rem;padding:.08rem .45rem;border-radius:999px;font-size:.72rem;background:var(--color-primary);color:var(--color-on-primary)}.sidebar-link .nav-icon{width:1rem;height:1rem;flex:0 0 auto;transition:transform .14s ease,font-size .14s ease}.sidebar-link:hover{background:var(--color-surface-hover);color:var(--color-text-strong)}.sidebar-link.active{background:var(--gradient-primary, var(--color-primary-strong));color:#fff;font-weight:500;box-shadow:0 2px 10px var(--color-primary-glow)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--color-border);padding-top:.75rem;position:relative;flex-shrink:0}.sidebar-resizer{width:8px;min-width:8px;cursor:col-resize;position:relative;flex-shrink:0;background:transparent}.sidebar-resizer:before{content:"";position:absolute;top:0;left:3px;width:2px;height:100%;background:var(--color-border);border-radius:1px;transition:background .15s ease}.sidebar-resizer:hover:before,.app-layout.resizing-sidebar .sidebar-resizer:before{background:var(--color-primary)}.app-layout.resizing-sidebar{cursor:col-resize;-webkit-user-select:none;user-select:none}.main-sidebar.compact{padding-left:.5rem;padding-right:.5rem}.main-sidebar.compact .sidebar-header{justify-content:center}.main-sidebar.compact .logo-circle{width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;border-radius:10px;font-size:.9rem}.main-sidebar.compact .sidebar-title,.main-sidebar.compact .sidebar-link-label,.main-sidebar.compact .user-meta{display:none}.main-sidebar.compact .sidebar-link{justify-content:center;gap:0;padding:.65rem .45rem}.main-sidebar.compact .sidebar-link .nav-icon{width:1.2rem;height:1.2rem}.main-sidebar.compact .sidebar-link:hover .nav-icon,.main-sidebar.compact .sidebar-link.active .nav-icon{transform:scale(1.1)}.main-sidebar.compact .user-info{justify-content:center}.main-sidebar.compact .user-menu-trigger{justify-content:center;padding-left:.35rem;padding-right:.35rem}.main-sidebar.compact .user-menu-trigger .menu-icon{display:none}.user-menu{position:relative}.user-menu-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:none;background:transparent;color:inherit;padding:.35rem .4rem;border-radius:10px;cursor:pointer}.user-menu-trigger:hover{background:var(--color-surface-hover)}.menu-icon{width:1rem;height:1rem;color:var(--color-text-muted-2)}.user-menu-popover{position:absolute;left:0;right:0;bottom:calc(100% + .45rem);background:var(--color-surface-popover);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 12px 24px #02061773;padding:.35rem;display:flex;flex-direction:column;gap:.15rem;z-index:120}.main-sidebar.compact .user-menu-popover{left:calc(100% + .4rem);right:auto;min-width:220px}.user-menu-item{width:100%;border:none;background:transparent;color:var(--color-text-strong);border-radius:8px;font-size:.85rem;padding:.45rem .55rem;text-align:left;cursor:pointer}.user-menu-item:hover{background:var(--color-surface-hover)}.checkbox-item{display:flex;align-items:center;gap:.45rem;cursor:pointer}.checkbox-item input{accent-color:var(--color-primary)}.user-info{display:flex;align-items:center;gap:.6rem}.user-avatar{width:32px;height:32px;min-width:32px;min-height:32px;max-width:32px;max-height:32px;aspect-ratio:1 / 1;flex:0 0 auto;border-radius:999px;background:var(--color-border);display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:width .14s ease,height .14s ease,transform .14s ease}.user-avatar-img{width:100%;height:100%;border-radius:999px;object-fit:cover}.main-sidebar.compact .user-avatar{width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;font-size:.88rem}.user-meta{display:flex;flex-direction:column;gap:.1rem}.user-name{font-size:.85rem}.logout-link{color:var(--color-text-muted-2);font-size:.85rem}.logout-link:hover{color:var(--color-text-strong)}.app-main{flex:1;min-width:0;min-height:0;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;overflow:auto;position:relative;z-index:1}.main-topbar{display:flex;justify-content:flex-end}.main-topbar-right{display:flex;align-items:center;gap:.5rem}.theme-switcher{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-surface-base);border:1px solid var(--color-border);border-radius:999px;padding:.3rem .55rem}.theme-icon-animated{position:relative;width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center}.theme-icon-animated .theme-glyph{position:absolute;inset:0;width:1rem;height:1rem;color:var(--color-text-muted-2);transition:opacity .18s ease,transform .18s ease}.theme-icon-animated.is-dark .theme-glyph.moon{opacity:1;transform:rotate(0) scale(1)}.theme-icon-animated.is-dark .theme-glyph.sun{opacity:0;transform:rotate(-70deg) scale(.6)}.theme-icon-animated.is-light .theme-glyph.sun{opacity:1;transform:rotate(0) scale(1)}.theme-icon-animated.is-light .theme-glyph.moon{opacity:0;transform:rotate(70deg) scale(.6)}.theme-switcher select{border:1px solid var(--color-border);background:var(--color-surface-base);color:var(--color-text-strong);font-size:.85rem;cursor:pointer;border-radius:999px;padding:.2rem .55rem}.theme-switcher select:focus{outline:none;border-color:var(--color-primary)}.theme-switcher select option{color:#111827;background:#fff}.settings-modal{max-width:560px}.settings-modal-body{display:flex;flex-direction:column;gap:.35rem}.app-layout.layout-chats .app-main{padding:0;gap:0;overflow:hidden}.app-layout.layout-chats .main-topbar{display:flex;justify-content:flex-end;position:absolute;top:.55rem;right:.75rem;z-index:25;padding:0;border:none;background:transparent;pointer-events:none}.app-layout.layout-chats .main-topbar-right{pointer-events:auto}.chats-layout{--chat-sidebar-width: 220px;--chat-right-panel-width: 240px;display:flex;flex:1;height:100%;min-height:0;gap:0;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background:var(--color-surface-base)}.chats-sidebar{width:var(--chat-sidebar-width);flex:0 0 var(--chat-sidebar-width);height:100%;min-height:100%;border-right:1px solid color-mix(in srgb,var(--color-border-strong) 65%,transparent);padding:.6rem .55rem;overflow-y:auto;background:var(--color-surface-base)}.chats-sidebar h2{margin:0 0 .75rem;font-size:.95rem;color:var(--color-text-muted)}.chats-sidebar ul{list-style:none;margin:0;padding:0}.chats-sidebar li{margin-bottom:.25rem}.chats-sidebar li button{width:100%;text-align:left;padding:.6rem;background:transparent;border:none;border-radius:8px;color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:space-between}.chats-sidebar li button:hover,.chats-sidebar li.active button{background:var(--color-surface-hover)}.chat-list-label{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.chat-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-typing{font-size:.7rem;color:var(--color-text-muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chats-sidebar .unread{background:var(--color-primary);color:var(--color-on-primary);font-size:.75rem;padding:.15rem .4rem;border-radius:10px;margin-left:.5rem}.chats-main{flex:1;display:flex;flex-direction:column;padding:.45rem .55rem;min-width:0;min-height:0;height:100%;background:var(--color-surface-base);position:relative}.chats-main.with-right-panel .send-form,.chats-main.with-right-panel .chat-compose-meta,.chats-main.with-right-panel .chat-selection-bar,.chats-main.with-right-panel .chat-attach-strip{margin-right:calc(var(--chat-right-panel-width) + .6rem)}.chat-room-header{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.35rem .4rem .65rem;border-bottom:1px solid var(--color-border)}.chat-room-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.chat-room-header.clickable:focus-visible{outline:2px solid color-mix(in srgb,var(--color-primary) 65%,#ffffff);outline-offset:2px;border-radius:8px}.chat-room-title-wrap h3{margin:0;font-size:.98rem}.chat-room-title-wrap .muted{font-size:.78rem}.chat-room-subtitle{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.chat-typing-status{font-size:.8rem;color:var(--color-primary, #2563eb);font-style:italic}.chat-ws-status{font-size:.7rem;display:inline-flex;align-items:center;gap:.35rem}.chat-ws-status:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0}.chat-ws-status--connected{color:var(--color-success, #0d9488)}.chat-ws-status--connected:before{background:var(--color-success, #0d9488);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-success, #0d9488) 35%,transparent)}.chat-ws-status--connecting{color:var(--color-warning, #d97706)}.chat-ws-status--connecting:before{background:var(--color-warning, #d97706);animation:chat-ws-pulse 1s ease-in-out infinite}.chat-ws-status--disconnected{color:var(--color-text-muted)}.chat-ws-status--disconnected:before{background:var(--color-text-dim)}@keyframes chat-ws-pulse{0%,to{opacity:1}50%{opacity:.4}}.chat-room-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem}.chat-room-body.with-panel{grid-template-columns:minmax(0,1fr)}.chat-right-panel{position:absolute;top:0;right:0;bottom:0;width:var(--chat-right-panel-width);border-left:1px solid var(--color-border);overflow:hidden;background:var(--color-surface-base);display:flex;flex-direction:column}.chat-right-panel--info .chat-right-hero{position:relative;padding:.9rem .6rem 1rem;display:flex;flex-direction:column;align-items:center;text-align:center;flex-shrink:0}.chat-right-panel--info .chat-right-hero-bg{position:absolute;inset:0;background:var(--color-surface-elevated)}.chat-right-panel--info .chat-right-avatar-wrap{position:relative;width:4rem;height:4rem;border-radius:999px;overflow:hidden;background:var(--color-border);flex-shrink:0}.chat-right-panel--info .chat-right-avatar-img{width:100%;height:100%;object-fit:cover}.chat-right-panel--info .chat-right-avatar-initials{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.15rem;font-weight:600;color:var(--color-text-muted)}.chat-right-panel--info .chat-right-name{position:relative;margin-top:.4rem;font-size:.95rem;font-weight:600;color:var(--color-text-strong)}.chat-right-panel--info .chat-right-status{position:relative;margin-top:.1rem;font-size:.72rem;color:var(--color-text-muted)}.chat-right-panel--info .chat-right-section{padding:.25rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-surface-elevated);flex-shrink:0}.chat-right-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;min-height:2.25rem}.chat-right-row-icon{width:1.25rem;text-align:center;font-size:.9rem;color:var(--color-text-muted);flex-shrink:0}.chat-right-row-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem}.chat-right-row-value{font-size:.82rem;color:var(--color-text-strong);word-break:break-all}.chat-right-row-label{font-size:.7rem;color:var(--color-text-muted)}.chat-right-section--stats,.chat-right-section--actions{margin-top:.6rem}.chat-right-row.as-button{border:none;width:100%;text-align:left;background:transparent;cursor:pointer;padding:.45rem .4rem}.chat-right-row.as-button:hover{background:var(--color-surface-hover)}.chat-right-item.as-button{border:none;width:100%;text-align:left;background:transparent;cursor:pointer;padding:.35rem .4rem}.chat-right-item.as-button:hover{background:var(--color-surface-hover)}.chat-right-common{margin-top:.6rem;display:flex;flex-direction:column;gap:.4rem;max-height:calc(100% - 6rem)}.chat-right-common-head{display:flex;align-items:center;gap:.4rem}.chat-right-common-head h4{margin:0;font-size:.9rem}.chat-right-common-list{flex:1;overflow-y:auto;padding-right:.1rem;display:flex;flex-direction:column;gap:.1rem}.chat-right-toggle{width:2.25rem;height:1.2rem;border-radius:999px;background:var(--color-border);border:none;cursor:pointer;padding:.12rem;flex-shrink:0;transition:background .2s}.chat-right-toggle.on{background:var(--color-text-muted)}.chat-right-toggle-thumb{display:block;width:.95rem;height:.95rem;border-radius:999px;background:var(--color-surface-base);box-shadow:0 1px 2px #00000026;margin-left:0;transition:margin-left .2s}.chat-right-toggle.on .chat-right-toggle-thumb{margin-left:1rem}.chat-right-panel-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem;padding:.4rem .5rem;flex-shrink:0;border-bottom:1px solid var(--color-border);background:var(--color-surface-base)}.chat-right-panel-tabs button{border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--color-text-muted);border-radius:4px;font-size:.72rem;padding:.3rem .15rem;cursor:pointer}.chat-right-panel-tabs button:hover{color:var(--color-text-strong)}.chat-right-panel-tabs button.active{color:var(--color-text-strong);font-weight:600;border-bottom-color:var(--color-text-muted)}.chat-right-content{flex:1;min-height:0;overflow-y:auto;padding:.5rem .55rem}.chat-right-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem}.chat-right-grid-item{display:block;aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--color-surface-elevated)}.chat-right-grid-img{width:100%;height:100%;object-fit:cover;display:block}.chat-right-grid-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:var(--color-text-muted)}.chat-right-list{display:flex;flex-direction:column;gap:.3rem}.chat-right-item{display:block;border:1px solid var(--color-border);border-radius:6px;padding:.3rem .4rem;background:var(--color-surface-elevated);color:var(--color-text-strong);text-decoration:none;word-break:break-word;font-size:.76rem}.chat-right-item:hover{background:var(--color-surface-hover)}.chats-main .placeholder{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-text-dim)}.messages{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.16rem;padding:.35rem .6rem .25rem 1.6rem;position:relative;background-color:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface-base));background-image:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 8%,transparent) 0,color-mix(in srgb,var(--color-primary) 8%,transparent) 1px,transparent 1px,transparent 16px),linear-gradient(225deg,color-mix(in srgb,var(--color-primary) 5%,transparent) 0,color-mix(in srgb,var(--color-primary) 5%,transparent) 1px,transparent 1px,transparent 16px);background-repeat:repeat;background-size:32px 32px}.messages.drag-selecting{-webkit-user-select:none;user-select:none}.message{width:fit-content;max-width:70%;padding:.2rem .8rem;border-radius:16px;background:color-mix(in srgb,var(--color-surface-base) 80%,#1f2937);border:1px solid color-mix(in srgb,var(--color-border) 80%,#1f2937);font-size:.9rem;line-height:1.3;position:relative;box-shadow:0 2px 8px #0206172e}.message.compact{padding-top:.12rem;padding-bottom:.12rem}.message-row{display:flex;width:100%;position:relative;transition:background-color .14s ease-out,box-shadow .14s ease-out,transform .14s ease-out}.message-row.selected{background:transparent;box-shadow:none;transform:none}.message-row.highlighted{background:color-mix(in srgb,var(--color-primary) 18%,var(--color-surface-base));border-radius:14px}.message-row.highlighted .message{box-shadow:0 0 0 1px color-mix(in srgb,var(--color-primary) 60%,var(--color-border)),0 0 18px color-mix(in srgb,var(--color-primary) 40%,transparent)}.message-row.own,.message-row.incoming{justify-content:flex-start}.message.own{align-self:flex-start;background:color-mix(in srgb,var(--color-primary) 26%,var(--color-surface-base));border-color:color-mix(in srgb,var(--color-primary) 34%,var(--color-border))}.message.selected{background:color-mix(in srgb,var(--color-primary) 18%,var(--color-surface-base));border-color:color-mix(in srgb,var(--color-primary) 40%,var(--color-border))}.message .sender{display:block;font-size:.66rem;color:var(--color-text-muted);margin-bottom:.1rem;font-weight:600}.msg-reply-preview{display:grid;grid-template-columns:3px minmax(0,1fr);gap:.4rem;margin-bottom:.16rem;align-items:stretch;border:none;padding:0;background:transparent;cursor:pointer}.msg-reply-bar{background:color-mix(in srgb,var(--color-primary) 60%,var(--color-surface-base));border-radius:999px}.msg-reply-content{display:flex;flex-direction:column;gap:.08rem;min-width:0;align-items:flex-start;text-align:left}.msg-reply-author{font-size:.72rem;font-weight:600;color:var(--color-text-strong)}.msg-reply-snippet{font-size:.72rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.msg-forward-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.15rem}.msg-forward-bar{width:3px;align-self:stretch;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 75%,transparent)}.msg-forward-main{display:flex;flex-direction:column;gap:.05rem;min-width:0;align-items:flex-start;text-align:left}.msg-forward-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:color-mix(in srgb,var(--color-text-muted) 80%,transparent)}.msg-forward-author{font-size:.8rem;font-weight:600;color:var(--color-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.msg-forward-author-link{border:none;background:transparent;padding:0;margin:0;cursor:pointer}.msg-forward-author-link:hover .msg-forward-author{text-decoration:underline}.message .text{display:inline;white-space:pre-wrap;word-break:break-word}.message.own .sender{color:var(--color-primary-soft)}.message .time{display:inline-block;margin-left:.4rem;font-size:.62rem;color:color-mix(in srgb,var(--color-text-dim) 92%,#cbd5e1);line-height:1;transform:translateY(3px)}.message .time .message-pin-icon{display:inline-block;width:.7rem;height:.7rem;margin-left:.15rem;vertical-align:middle;color:inherit;transform:translateY(-1px)}.message-read-status{display:inline-flex;margin-left:.2rem;vertical-align:middle;transform:translateY(-1px)}.message-read-status svg{width:.95rem;height:.6rem;display:block}.message-read-status--sent,.message-read-status--delivered{color:var(--color-text-muted)}.message-read-status--read{color:var(--color-primary)}.message-select{position:absolute;right:-1.2rem;bottom:.05rem;transform:none;display:inline-flex;align-items:center}.message-select-handle{position:absolute;left:0;top:0;bottom:0;width:50%;background:transparent;cursor:pointer;border:none;padding:0}.message-select input{appearance:none;-webkit-appearance:none;width:.86rem;height:.86rem;border-radius:999px;border:1px solid var(--color-border-strong);background:var(--color-surface-base);cursor:pointer;display:inline-grid;place-items:center}.message-select input:after{content:"";width:.44rem;height:.44rem;border-radius:999px;transform:scale(0);background:var(--color-on-primary);transition:transform .12s ease}.message-select input:checked{border-color:var(--color-primary);background:var(--color-primary)}.message-select input:checked:after{transform:scale(1)}.message-attachments{margin-top:.14rem;display:flex;flex-wrap:wrap;gap:.18rem}.message-attachment-link{display:inline-flex;align-items:center;gap:.15rem;border:1px solid var(--color-border);padding:.12rem .34rem;border-radius:999px;color:var(--color-link);text-decoration:none;font-size:.64rem}.message-attachment-link:hover{background:var(--color-surface-base)}.send-form{display:flex;align-items:flex-end;gap:.5rem;margin-top:.35rem;transition:margin-right .18s ease}.chat-file-input-hidden{display:none}.send-form .attach-btn{width:2rem;min-width:2rem;height:2rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-hover);color:var(--color-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.send-form .attach-btn:hover{border-color:color-mix(in srgb,var(--color-primary) 55%,var(--color-border));color:var(--color-link);background:var(--color-surface-base)}.attach-icon{width:1.06rem;height:1.06rem;display:block;transform:rotate(-12deg);transform-origin:50% 50%}.chat-attach-strip{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.28rem;transition:margin-right .18s ease}.chat-attach-chip{display:inline-flex;align-items:center;gap:.2rem;max-width:220px;border:1px solid var(--color-border);border-radius:999px;padding:.14rem .4rem;font-size:.7rem;color:var(--color-text-muted);background:var(--color-surface-hover)}.chat-attach-chip button{border:none;background:transparent;color:var(--color-text-dim);cursor:pointer;padding:0;line-height:1;font-size:.8rem}.send-form input,.send-form .chat-message-input{flex:1;min-width:0;padding:.6rem .75rem;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-surface-base);color:var(--color-input-text);font-size:1rem;font-family:inherit}.send-form .chat-message-input{resize:none;overflow-y:auto;min-height:44px;max-height:160px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.send-form input:focus,.send-form .chat-message-input:focus{outline:none;border-color:var(--color-primary)}.send-submit-btn{padding:.6rem 1rem;background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:8px;cursor:pointer;flex-shrink:0}.send-submit-btn:hover{background:var(--color-primary-hover)}.chat-compose-meta{margin-top:.4rem;border:1px solid var(--color-border);background:var(--color-surface-hover);border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;font-size:.82rem}.chat-compose-meta.reply{justify-content:space-between;animation:chat-reply-pop-in .18s ease-out}.chat-compose-meta.edit{animation:chat-reply-pop-in .18s ease-out}.chat-reply-main{display:flex;align-items:flex-start;gap:.45rem;min-width:0}.chat-reply-icon .chat-menu-icon{width:1.2rem;height:1.2rem}.chat-reply-text{display:flex;flex-direction:column;gap:.14rem;min-width:0}.chat-reply-author{font-size:.8rem;font-weight:600;color:var(--color-text-strong)}.chat-reply-snippet{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}@keyframes chat-reply-pop-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.message-date-separator{display:flex;justify-content:center;margin:.35rem 0}.message-date-separator-sticky{position:sticky;top:0;z-index:3;display:flex;justify-content:center;margin:0 0 .35rem;padding:.2rem 0 .35rem;background:transparent;pointer-events:none}.message-date-separator-sticky span{font-size:.72rem;color:var(--color-text-muted);background:var(--color-surface-base);padding:.12rem .5rem;border-radius:999px;box-shadow:none}.message-unread-separator{display:flex;justify-content:center;margin:.35rem 0}.message-date-separator span{font-size:.72rem;color:var(--color-text-muted);background:var(--color-surface-base);padding:.12rem .5rem;border-radius:999px}.message-unread-separator span{font-size:.72rem;color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface-base);padding:.12rem .5rem;border-radius:999px}.message-unread-separator span{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);font-weight:600}.chat-context-menu{position:fixed;z-index:1200;min-width:170px;border:1px solid var(--color-border);background:var(--color-surface-popover);border-radius:10px;box-shadow:0 10px 24px #02061759;padding:.25rem;display:flex;flex-direction:column;transform-origin:top left;animation:chat-menu-pop-in .16s ease-out}.chat-context-menu button{border:none;background:transparent;color:var(--color-text-strong);text-align:left;border-radius:8px;padding:.42rem .52rem;font-size:.84rem;cursor:pointer;display:flex;align-items:center;gap:.45rem}.chat-context-menu button:hover{background:var(--color-surface-hover)}.chat-context-menu button.danger{color:#f87171}[data-theme=light] .chat-context-menu button.danger{color:#b91c1c}.chat-menu-icon{width:1rem;height:1rem;flex:0 0 auto;color:var(--color-text-muted-2)}@keyframes chat-menu-pop-in{0%{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-avatar-mini{width:1.55rem;height:1.55rem;border-radius:999px;background:var(--color-primary-strong);color:var(--color-on-primary);font-size:.75rem;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-right:.45rem;overflow:hidden}.chat-avatar-mini-img{width:100%;height:100%;object-fit:cover}.chat-pinned-bar{border:none;background:color-mix(in srgb,var(--color-surface-elevated) 96%,transparent);border-radius:4px;display:flex;flex-direction:column;gap:.2rem;padding:.35rem .65rem;font-size:.78rem;width:100%;text-align:left;cursor:pointer}.chat-pinned-bar-top{display:flex;align-items:center;gap:.4rem;justify-content:space-between}.chat-pinned-link{border:none;background:transparent;color:var(--color-link);cursor:pointer;text-align:left;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.chat-pinned-link:hover{text-decoration:underline}.chat-pinned-count{font-size:.72rem;color:var(--color-text-muted)}.chat-pinned-menu-btn{border:none;background:transparent;cursor:pointer;padding:.15rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.chat-pinned-menu-btn span{width:.95rem;height:.95rem;border-radius:999px;border:1px solid var(--color-border);position:relative}.chat-pinned-menu-btn span:before,.chat-pinned-menu-btn span:after{content:"";position:absolute;left:50%;width:.48rem;height:1px;background:var(--color-text-muted-2);transform:translate(-50%)}.chat-pinned-menu-btn span:before{top:40%}.chat-pinned-menu-btn span:after{bottom:40%}.chat-pinned-menu-btn:hover span{border-color:color-mix(in srgb,var(--color-primary) 55%,var(--color-border))}.chat-pinned-list{margin-top:.35rem;border:1px solid var(--color-border);background:var(--color-surface-base);border-radius:8px;padding:.25rem .3rem;display:flex;flex-direction:column;gap:.15rem;max-height:220px;overflow-y:auto}.chat-pinned-list-item{border:none;background:transparent;color:var(--color-text-strong);border-radius:6px;padding:.25rem .3rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;font-size:.8rem}.chat-pinned-list-item:hover{background:var(--color-surface-hover)}.chat-pinned-list-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.chat-pinned-list-time{font-size:.72rem;color:var(--color-text-muted);flex-shrink:0}.pinned-modal-card{max-width:520px}.pinned-modal-body{display:flex;flex-direction:column;gap:.2rem;margin-top:.3rem}.chats-main.with-right-panel .chat-room-header,.chats-main.with-right-panel .chat-pinned-bar{margin-right:calc(var(--chat-right-panel-width) + .6rem)}.chat-selection-bar{margin-top:.35rem;border:1px solid var(--color-border);background:var(--color-surface-hover);border-radius:8px;padding:.35rem .5rem;display:flex;align-items:center;justify-content:space-between;gap:.45rem;font-size:.82rem}.chat-selection-actions{display:inline-flex;gap:.3rem}.forward-modal-card{max-width:420px}.forward-modal-search{margin-top:.5rem}.forward-modal-search input{width:100%;padding:.4rem .55rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-base);color:var(--color-text);font-size:.85rem}.forward-modal-search input:focus{outline:none;border-color:var(--color-primary)}.forward-modal-list{margin-top:.5rem;max-height:420px;overflow-y:auto;padding-right:.1rem;display:flex;flex-direction:column;gap:.1rem}.forward-modal-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.35rem .4rem;border-radius:10px;border:none;background:transparent;cursor:pointer;text-align:left}.forward-modal-item:hover{background:var(--color-surface-hover)}.forward-modal-avatar{flex:0 0 2rem;width:2rem;height:2rem;border-radius:999px;background:var(--color-surface-strong);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:var(--color-on-primary);overflow:hidden}.forward-modal-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:999px}.forward-modal-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}.forward-modal-title{font-size:.9rem;font-weight:500;color:var(--color-text-strong)}.forward-modal-subtitle{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supply-page{display:flex;flex-direction:column;gap:1rem}.supply-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.supply-header h2{margin:0}.supply-header-left{display:flex;flex-direction:column;gap:.35rem;min-width:0}.supply-header-title-row{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.supply-primary-nav{display:inline-flex;align-items:center;gap:.45rem;margin-left:.25rem}.supply-primary-btn{border:1px solid color-mix(in srgb,var(--color-primary) 58%,var(--color-border));background:linear-gradient(180deg,color-mix(in srgb,var(--color-primary) 22%,var(--color-surface-base)),color-mix(in srgb,var(--color-primary) 12%,var(--color-surface-base)));color:var(--color-text-strong);border-radius:10px;padding:.42rem .72rem;font-size:.82rem;font-weight:600;cursor:pointer;box-shadow:inset 0 1px #ffffff14}.supply-primary-btn:hover{border-color:color-mix(in srgb,var(--color-primary) 78%,var(--color-border));background:linear-gradient(180deg,color-mix(in srgb,var(--color-primary) 30%,var(--color-surface-base)),color-mix(in srgb,var(--color-primary) 16%,var(--color-surface-base)))}.supply-primary-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.muted{color:var(--color-text-muted);font-size:.9rem}.supply-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.supply-actions-inline{display:inline-flex;align-items:center;gap:.35rem}.btn-ghost{padding:.4rem .75rem;border-radius:999px;border:1px solid var(--color-border-weak);background:transparent;color:var(--color-text-strong);font-size:.85rem;cursor:pointer;font-family:inherit;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn-ghost.small{padding:.25rem .5rem;font-size:.8rem}.btn-ghost:hover{background:var(--color-surface-hover)}.supply-actions .btn-ghost.active{background:var(--color-surface-hover);border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.supply-inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;margin-top:.35rem;background:var(--color-surface-elevated);border:1px solid var(--color-border-weak);border-radius:10px;animation:supply-inline-slide .18s ease-out}@keyframes supply-inline-slide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.supply-inline-form-title{font-size:.78rem;font-weight:600;color:var(--color-text-muted);margin-right:.25rem;white-space:nowrap}.supply-inline-form-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.supply-inline-form-row input[type=text]{padding:.32rem .55rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text-strong);font-size:.82rem;font-family:inherit;min-width:120px;max-width:180px;transition:border-color .15s}.supply-inline-form-row input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,transparent)}.supply-inline-form-row button{padding:.32rem .7rem;border-radius:6px;border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font-size:.8rem;font-family:inherit;font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity .15s}.supply-inline-form-row button:disabled{opacity:.5;cursor:not-allowed}.supply-inline-form-row button:hover:not(:disabled){opacity:.88}.supply-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1rem}.supply-main{min-width:0;display:flex;flex-direction:column;gap:1rem}.supply-sidebar{min-width:0}.supply-mini-list{display:flex;flex-direction:column;gap:.35rem}.supply-mini-row{width:100%;border:1px solid var(--color-border);background:var(--color-surface-base);border-radius:8px;padding:.45rem .55rem;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.1rem}.supply-mini-row:hover{background:var(--color-surface-hover)}.supply-mini-row.active{border-color:var(--color-primary);background:var(--color-surface-hover)}.material-search-select{position:relative;width:100%}.material-search-input{width:100%;box-sizing:border-box}.material-search-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;max-height:220px;overflow-y:auto;background:var(--color-surface-base);border:1px solid var(--color-border);border-radius:8px;margin-top:2px;box-shadow:var(--shadow-elevated)}.material-search-option{padding:8px 12px;cursor:pointer;font-size:.9rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-search-option:hover{background:var(--color-surface-hover)}.material-search-option.selected{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);font-weight:500}.material-search-option.not-in-stock{color:#f59e0b;font-weight:500;border-bottom:1px solid var(--color-border)}.material-search-option.muted{color:var(--color-text-muted);cursor:default;font-style:italic}.supply-mini-row.static{cursor:default}.supply-mini-row.static:hover{background:var(--color-surface-base)}.supply-mini-row .title{font-size:.85rem;color:var(--color-text-strong)}.supply-mini-row .meta{font-size:.8rem;color:var(--color-text-muted)}.supply-mini-row .qty{font-size:.82rem;color:var(--color-text-strong)}.supply-allocation-head-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.supply-allocation-tabs{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.12rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-hover);max-width:100%}.supply-allocation-tabs .btn-ghost{border-radius:999px}.supply-allocation-tabs .btn-ghost.active{background:var(--color-surface-base);border-color:color-mix(in srgb,var(--color-primary) 40%,var(--color-border));color:var(--color-text-strong)}.supply-allocation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.alloc-page{display:flex;flex-direction:column;min-height:100%}.alloc-page-header{padding:28px 32px 0}.alloc-page-header-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px}.alloc-page-title{font-size:24px;font-weight:700;color:var(--color-text-strong);letter-spacing:-.3px}.alloc-page-subtitle{font-size:14px;color:var(--color-text-dim);margin-top:4px;line-height:1.5;max-width:600px}.alloc-header-actions{display:flex;gap:8px;flex-shrink:0}.alloc-btn-nav{display:flex;align-items:center;gap:7px;padding:9px 18px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface-elevated);color:var(--color-text-muted);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:.18s cubic-bezier(.4,0,.2,1);white-space:nowrap}.alloc-btn-nav:hover{border-color:var(--color-primary);color:var(--color-text-strong);background:var(--color-surface-base)}.alloc-btn-nav svg{width:16px;height:16px}.alloc-toolbar{display:flex;align-items:center;gap:12px;padding:18px 32px}.alloc-toolbar-search{position:relative;flex:1;max-width:420px}.alloc-toolbar-search input{width:100%;padding:9px 14px 9px 38px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface-elevated);color:var(--color-text);font-family:inherit;font-size:13.5px;outline:none;transition:.18s cubic-bezier(.4,0,.2,1)}.alloc-toolbar-search input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 12%,transparent)}.alloc-toolbar-search input::placeholder{color:var(--color-text-dim)}.alloc-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-dim);display:flex}.alloc-search-icon svg{width:16px;height:16px}.alloc-toolbar-count{font-size:13px;color:var(--color-text-dim);white-space:nowrap}.alloc-toolbar-count strong{color:var(--color-text-muted);font-weight:600}.alloc-mode-toggle{display:flex;background:var(--color-surface-elevated);border-radius:10px;padding:3px;gap:2px;border:1px solid var(--color-border-weak)}.alloc-mode-btn{padding:7px 16px;border-radius:7px;border:none;background:transparent;color:var(--color-text-dim);cursor:pointer;transition:.18s cubic-bezier(.4,0,.2,1);font-family:inherit;font-size:12.5px;font-weight:500;white-space:nowrap}.alloc-mode-btn:hover{color:var(--color-text-muted)}.alloc-mode-btn.active{background:var(--color-surface-hover);color:var(--color-text-strong)}.alloc-content-area{padding:0 32px 40px}.alloc-layout{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.alloc-panel{background:var(--color-surface-elevated);border:1px solid var(--color-border-weak);border-radius:14px;overflow:hidden}.alloc-panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-weak)}.alloc-panel-title{font-size:14px;font-weight:600;color:var(--color-text-strong)}.alloc-panel-badge{display:inline-flex;align-items:center;padding:2px 10px;background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);border-radius:20px;font-size:12px;font-weight:600;color:var(--color-primary)}.alloc-entity-list{max-height:560px;overflow-y:auto}.alloc-entity-item{display:flex;align-items:center;gap:12px;padding:13px 20px;cursor:pointer;transition:all .18s ease;border:none;background:none;width:100%;text-align:left;font-family:inherit;border-bottom:1px solid var(--color-border-weak);position:relative;animation:alloc-slideIn .3s ease both;color:inherit}.alloc-entity-item:last-child{border-bottom:none}.alloc-entity-item:hover{background:var(--color-surface-base)}.alloc-entity-item.active{background:var(--color-surface-hover)}.alloc-entity-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--color-primary)}@keyframes alloc-slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.alloc-entity-avatar{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;flex-shrink:0;letter-spacing:.5px}.alloc-entity-avatar.user{background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);color:var(--color-primary)}.alloc-entity-avatar.object{background:color-mix(in srgb,#10b981 10%,transparent);border:1px solid color-mix(in srgb,#10b981 20%,transparent);color:#10b981}[data-theme=light] .alloc-entity-avatar.object{color:#065f46}.alloc-entity-info{flex:1;min-width:0}.alloc-entity-name{font-size:13.5px;font-weight:600;color:var(--color-text-strong);overflow:hidden;text-overflow:ellipsis;line-height:1.3;white-space:nowrap}@media(max-width:768px){.alloc-entity-name{white-space:normal;overflow:visible;text-overflow:unset}}.alloc-entity-meta{font-size:12px;color:var(--color-text-dim);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alloc-entity-right{flex-shrink:0;text-align:right}.alloc-entity-qty{font-size:14px;font-weight:700;color:var(--color-text-strong)}.alloc-entity-qty-label{font-size:12px;color:var(--color-text-dim);margin-top:1px}.alloc-detail-panel{min-height:440px}.alloc-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 20px;text-align:center;animation:alloc-fadeIn .4s ease}@keyframes alloc-fadeIn{0%{opacity:0}to{opacity:1}}.alloc-detail-empty-icon{width:60px;height:60px;border-radius:16px;background:var(--color-surface-base);border:1px solid var(--color-border-weak);display:flex;align-items:center;justify-content:center;margin-bottom:18px}.alloc-detail-empty-icon svg{width:26px;height:26px;color:var(--color-text-dim)}.alloc-detail-empty-title{font-size:15px;font-weight:600;color:var(--color-text-muted);margin-bottom:6px}.alloc-detail-empty-text{font-size:13px;color:var(--color-text-dim);line-height:1.5}.alloc-detail-header{display:flex;align-items:center;gap:14px;padding:20px;border-bottom:1px solid var(--color-border-weak);animation:alloc-fadeIn .3s ease}.alloc-detail-avatar{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}.alloc-detail-avatar.user{background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);color:var(--color-primary)}.alloc-detail-avatar.object{background:color-mix(in srgb,#10b981 10%,transparent);border:1px solid color-mix(in srgb,#10b981 20%,transparent);color:#10b981}[data-theme=light] .alloc-detail-avatar.object{color:#065f46}.alloc-detail-title-group{flex:1;min-width:0}.alloc-detail-name{font-size:17px;font-weight:700;color:var(--color-text-strong);line-height:1.3}.alloc-detail-meta{font-size:12.5px;color:var(--color-text-dim);margin-top:3px;display:flex;align-items:center;gap:8px}.alloc-stats-row{display:flex;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border-weak);animation:alloc-fadeIn .35s ease}.alloc-stat-card{flex:1;padding:14px 16px;background:var(--color-surface-base);border-radius:10px;border:1px solid var(--color-border-weak)}.alloc-stat-label{font-size:11px;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.05em;font-weight:500;margin-bottom:6px}.alloc-stat-value{font-size:20px;font-weight:700;color:var(--color-text-strong)}.alloc-stat-value.accent{color:var(--color-primary)}.alloc-stat-value.success{color:#10b981}[data-theme=light] .alloc-stat-value.success{color:#065f46}.alloc-stat-value-sm{font-size:14px!important}.alloc-mat-table{width:100%;border-collapse:collapse}.alloc-mat-table thead th{padding:11px 20px;font-size:11.5px;font-weight:500;color:var(--color-text-dim);text-align:left;border-bottom:1px solid var(--color-border-weak);text-transform:uppercase;letter-spacing:.05em}.alloc-mat-table thead th.r{text-align:right}.alloc-mat-table tbody tr{cursor:pointer;transition:.18s cubic-bezier(.4,0,.2,1);animation:alloc-rowIn .25s ease both}.alloc-mat-table tbody tr:hover{background:var(--color-surface-base)}.alloc-mat-table tbody td{padding:13px 20px;font-size:13.5px;border-bottom:1px solid var(--color-border-weak);color:var(--color-text)}.alloc-mat-table tbody td.r{text-align:right}.alloc-mat-table tbody tr:last-child td{border-bottom:none}@keyframes alloc-rowIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.alloc-mat-name{font-weight:500;color:var(--color-text-strong)}.alloc-mat-inv{font-size:12px;color:var(--color-text-dim)}.alloc-mat-obj{font-size:13px;color:var(--color-text-muted)}.alloc-mat-qty-wrap{font-weight:700;color:var(--color-text-strong)}.alloc-mat-unit{font-weight:400;color:var(--color-text-dim);margin-left:4px;font-size:12px}.alloc-mat-date{font-size:12.5px;color:var(--color-text-dim)}.alloc-status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.02em}.alloc-status-pill:before{content:"";width:6px;height:6px;border-radius:50%}.alloc-status-pill.active{background:color-mix(in srgb,#10b981 10%,transparent);color:#34d399}.alloc-status-pill.active:before{background:#10b981}.alloc-status-pill.paused{background:color-mix(in srgb,#f59e0b 10%,transparent);color:#fbbf24}.alloc-status-pill.paused:before{background:#f59e0b}.alloc-status-pill.completed{background:color-mix(in srgb,#8b5cf6 10%,transparent);color:#8b5cf6}.alloc-status-pill.completed:before{background:#8b5cf6}[data-theme=light] .alloc-status-pill.active{color:#065f46}[data-theme=light] .alloc-status-pill.paused{color:#78350f}[data-theme=light] .alloc-status-pill.completed{color:#5b21b6}.alloc-empty-state{display:flex;flex-direction:column;align-items:center;padding:48px 20px;text-align:center}.alloc-empty-title{font-size:14px;font-weight:600;color:var(--color-text-muted);margin-bottom:4px}.alloc-empty-text{font-size:13px;color:var(--color-text-dim)}.alloc-drill{animation:alloc-fadeIn .3s ease}.alloc-breadcrumb{display:inline-flex;align-items:center;gap:6px;padding:12px 20px;background:none;border:none;color:var(--color-primary);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:.18s ease}.alloc-breadcrumb:hover{color:var(--color-primary-hover)}.alloc-breadcrumb svg{width:16px;height:16px}.alloc-drill-header{display:flex;align-items:center;gap:14px;padding:8px 20px 16px;border-bottom:1px solid var(--color-border-weak)}.alloc-drill-avatar{width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-primary)}.alloc-drill-avatar svg{width:22px;height:22px}.alloc-drill-title{font-size:16px;font-weight:700;color:var(--color-text-strong);line-height:1.3}.alloc-drill-subtitle{font-size:12.5px;color:var(--color-text-dim);margin-top:2px}.alloc-refs-section{padding:12px 20px;border-bottom:1px solid var(--color-border-weak)}.alloc-refs-title{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.alloc-refs-list{display:flex;flex-direction:column;gap:4px}.alloc-ref-row{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.alloc-ref-name{font-size:13.5px;font-weight:500;color:var(--color-text-strong)}.alloc-ref-qty{font-size:13.5px;font-weight:700;color:var(--color-text-strong);font-variant-numeric:tabular-nums}.alloc-grouped-movements{display:flex;flex-direction:column}.alloc-group-section{border-bottom:1px solid var(--color-border-weak)}.alloc-group-section:last-child{border-bottom:none}.alloc-group-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:color-mix(in srgb,var(--color-primary) 6%,transparent);position:sticky;top:0;z-index:1}.alloc-group-name{font-size:13.5px;font-weight:600;color:var(--color-text-strong)}.alloc-group-qty{font-size:13.5px;font-weight:700;color:var(--color-primary);font-variant-numeric:tabular-nums}.alloc-group-empty{padding:12px 20px;font-size:13px;color:var(--color-text-dim)}.alloc-movements-list{padding:12px 16px;display:flex;flex-direction:column;gap:8px;max-height:500px;overflow-y:auto}.alloc-movement-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:10px;border:1px solid var(--color-border-weak);background:var(--color-surface-base);cursor:pointer;transition:.18s ease;text-align:left;font-family:inherit;color:inherit;width:100%;animation:alloc-rowIn .25s ease both}.alloc-movement-card:hover{border-color:var(--color-border);background:var(--color-surface-hover)}.alloc-movement-card-top{display:flex;align-items:center;justify-content:space-between}.alloc-movement-badge{display:inline-flex;padding:3px 10px;border-radius:6px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.alloc-movement-badge.accent{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.alloc-movement-badge.success{background:color-mix(in srgb,#10b981 12%,transparent);color:#10b981}.alloc-movement-badge.warning{background:color-mix(in srgb,#f59e0b 12%,transparent);color:#f59e0b}.alloc-movement-badge.danger{background:color-mix(in srgb,#ef4444 12%,transparent);color:#ef4444}[data-theme=light] .alloc-movement-badge.success{color:#065f46}[data-theme=light] .alloc-movement-badge.warning{color:#78350f}[data-theme=light] .alloc-movement-badge.danger{color:#991b1b}[data-theme=light] .alloc-movement-badge.accent{color:var(--color-primary-strong)}.alloc-movement-badge.muted{background:var(--color-surface-hover);color:var(--color-text-muted)}.alloc-movement-qty{font-size:15px;font-weight:700;color:var(--color-text-strong)}.alloc-movement-card-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.alloc-movement-date{font-size:12.5px;color:var(--color-text-dim)}.alloc-movement-users{font-size:12.5px;color:var(--color-text-muted)}.alloc-movement-note{font-size:12.5px;color:var(--color-text-dim);line-height:1.4;border-top:1px solid var(--color-border-weak);padding-top:6px;margin-top:2px}@media(max-width:860px){.alloc-layout{grid-template-columns:1fr}.alloc-toolbar{flex-wrap:wrap}.alloc-page-header,.alloc-toolbar,.alloc-content-area{padding-left:16px;padding-right:16px}.alloc-header-actions{margin-top:12px}.alloc-page-header-top{flex-wrap:wrap}}.objects-page{display:flex;flex-direction:column;gap:.75rem}.objects-header{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem}.objects-header-left h2{margin:0 0 .15rem}.objects-header-left .muted{font-size:.85rem}.objects-header-actions{flex-shrink:0}.objects-filters-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.objects-filters-row .muted.small{font-size:.8rem}.objects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.object-card{border-radius:12px;border:1px solid var(--color-border);background:var(--color-surface-elevated);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;box-shadow:var(--shadow-elevated)}.object-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-elevated),0 0 0 1px var(--color-primary);background:var(--color-surface-hover)}.object-card:focus-visible{outline:2px solid var(--color-primary, #3b82f6);outline-offset:2px}.object-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.object-card-title{min-width:0}.object-card-title h3{margin:0;font-size:1rem;font-weight:600;line-height:1.3}.object-card-location{display:block;margin-top:.2rem;font-size:.8rem;color:var(--color-text-muted)}.object-card-description{margin:0;font-size:.82rem;color:var(--color-text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.object-card-metrics{display:flex;gap:1rem;margin-top:.2rem;padding-top:.5rem;border-top:1px solid var(--color-border)}.object-card-metrics .metric{flex:1;min-width:0}.object-card-metrics .metric-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-dim);margin-bottom:.15rem}.object-card-metrics .metric-value{font-size:.95rem;font-weight:600}.object-card-footer{margin-top:auto;padding-top:.5rem;display:flex;flex-wrap:wrap;gap:.4rem}.techcards-page{display:flex;flex-direction:column;gap:.75rem}.techcards-actions{flex-shrink:0}.techcards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media(max-width:1024px){.techcards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.techcards-grid{grid-template-columns:minmax(0,1fr)}}.techcard-card{position:relative;border-radius:16px;border:1px solid color-mix(in srgb,var(--color-border) 70%,var(--color-primary) 20%);background:radial-gradient(circle at 0 0,rgba(37,99,235,.08),transparent 55%),radial-gradient(circle at 100% 100%,rgba(14,116,144,.1),transparent 55%),var(--color-surface-elevated);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:inherit;cursor:default;box-shadow:var(--shadow-elevated);overflow:hidden}.techcard-card.selected{box-shadow:var(--shadow-elevated),0 0 0 1px var(--color-primary)}.techcard-card:before{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid transparent;background:linear-gradient(135deg,#3b82f699,#818cf84d) border-box;opacity:0;pointer-events:none;transition:opacity .15s ease;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.techcard-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-elevated),0 0 0 1px color-mix(in srgb,var(--color-primary) 60%,transparent)}.techcard-card:hover:before{opacity:.9}.techcard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.techcard-card-title{min-width:0}.techcard-card-title h3{margin:0;font-size:.98rem;font-weight:600;line-height:1.35}.techcard-card-support{display:inline-flex;margin-top:.2rem;padding:.1rem .4rem;border-radius:999px;font-size:.7rem;background:color-mix(in srgb,var(--color-primary-soft) 16%,transparent);color:var(--color-text-muted)}.techcard-pill{flex-shrink:0;padding:.15rem .55rem;border-radius:999px;font-size:.7rem;background:#22c55e1f;color:#4ade80;border:1px solid rgba(34,197,94,.35)}[data-theme=light] .techcard-pill{color:#166534}.techcard-media-chip{font-size:.8rem}.techcard-media-chip a{color:var(--color-link);text-decoration:none}.techcard-media-chip a:hover{text-decoration:underline}.techcard-card-text{margin:0;font-size:.82rem;line-height:1.45;color:var(--color-text-muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.techcards-steps-card{margin-top:.5rem}.techcard-detail-page{width:100%;max-width:none;margin:0;padding:0 1.25rem 1.25rem}.techcard-detail-header{margin-bottom:1rem}.techcard-detail-header .back-link{font-size:.9rem;color:var(--color-text-muted);text-decoration:none}.techcard-detail-header .back-link:hover{color:var(--color-primary, #3b82f6)}.techcard-detail-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr);gap:.9rem;align-items:flex-start}@media(max-width:960px){.techcard-detail-layout{grid-template-columns:minmax(0,1fr)}}.techcard-detail-card{background:var(--color-surface-elevated);padding:1.25rem 1.5rem;box-shadow:var(--shadow-elevated)}.techcard-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.techcard-detail-title{margin:0;font-size:1.35rem;font-weight:600}.techcard-detail-support{margin:.35rem 0 0;font-size:.9rem;color:var(--color-text-muted)}.techcard-meta-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.techcard-meta-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.techcard-meta-form input,.techcard-meta-form textarea{background:var(--color-surface-base);border-radius:8px;border:1px solid var(--color-border-weak);padding:.4rem .6rem;color:var(--color-text-strong);font-size:.9rem}.techcard-meta-form textarea{resize:vertical;min-height:80px}.techcard-steps-section{min-height:0}.techcards-steps-list{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.5rem}.techcards-step-item{padding:.4rem .1rem .4rem .25rem;border-bottom:1px dashed var(--color-border-weak)}.techcards-step-item:last-of-type{border-bottom:none}.techcards-step-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.techcards-step-title{font-size:.9rem}.techcards-step-body{margin:.2rem 0 0;font-size:.82rem;line-height:1.5;white-space:pre-wrap;color:var(--color-text-muted)}.techcards-step-form{margin-top:.75rem;border-top:1px solid var(--color-border);padding-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.object-detail-page{width:100%;max-width:none;margin:0;padding:0 1.25rem 1.25rem}.object-detail-header{margin-bottom:1rem}.object-detail-header .back-link{font-size:.9rem;color:var(--color-text-muted);text-decoration:none}.object-detail-header .back-link:hover{color:var(--color-primary, #3b82f6)}.object-detail-card{background:var(--color-surface-elevated);padding:1.25rem 1.5rem;box-shadow:var(--shadow-elevated)}.object-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.object-detail-title{margin:0;font-size:1.35rem;font-weight:600}.object-detail-location{margin:.35rem 0 0;font-size:.9rem;color:var(--color-text-muted)}.object-detail-description{margin-bottom:1rem}.object-detail-description .small-heading{margin:0 0 .35rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-dim)}.object-detail-description p{margin:0;font-size:.95rem;line-height:1.5;color:var(--color-text)}.object-detail-metrics{display:flex;gap:1.5rem;margin-bottom:1.25rem;padding:1rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.object-detail-metrics .metric-block{display:flex;flex-direction:column;gap:.2rem}.object-detail-metrics .metric-label{font-size:.78rem;color:var(--color-text-muted)}.object-detail-metrics .metric-value{font-size:1.1rem;font-weight:600}.object-detail-metrics-inline{margin-bottom:.75rem;padding:.75rem 0 .25rem;border-bottom:none}.object-detail-actions{display:flex;flex-wrap:wrap;gap:.5rem}.object-detail-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-top:.75rem;margin-bottom:1rem}.object-stat-card{padding:.6rem .8rem;border-radius:10px;background:var(--color-surface-base);border:1px solid var(--color-border);text-align:center}.object-stat-value{font-size:1.1rem;font-weight:600}.object-stat-label{font-size:.78rem;color:var(--color-text-muted)}.object-subsections-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem;margin-bottom:1rem}.object-subsection-card{background:var(--color-surface-base);border-radius:10px;border:1px solid var(--color-border);padding:.75rem .9rem;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.object-subsection-card h3{margin:0;font-size:.95rem}.object-subsection-link{margin-top:.1rem;font-size:.8rem;color:var(--color-link)}.object-subsection-card:hover{border-color:var(--color-primary);box-shadow:0 4px 14px #0f172a59}.object-detail-bottom-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr);gap:.9rem;align-items:flex-start}@media(max-width:960px){.object-detail-bottom-row{grid-template-columns:minmax(0,1fr)}}.object-info-card{display:flex;flex-direction:column;gap:.35rem}.object-detail-bottom-reports{min-height:0}.object-detail-layout{display:flex;flex-direction:column;gap:1rem}.object-detail-section{position:relative}.object-detail-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.object-detail-section-header h3{margin:0;font-size:.98rem}.object-detail-section-header .small,.object-detail-section-header .muted.small{font-size:.78rem}.object-elements-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.badge-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--color-surface-hover) 80%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent);font-size:.78rem;color:var(--color-text-soft)}.badge-pill-count{font-weight:600;color:var(--color-text-strong)}.badge-pill-soft{padding-inline:.4rem;background:color-mix(in srgb,var(--color-primary) 14%,transparent);border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);color:var(--color-text)}.object-checklist-list{list-style:none;padding:0;margin:0 0 .5rem;display:flex;flex-direction:column;gap:.25rem}.object-checklist-list li{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.object-checklist-name{font-size:.9rem}.object-checklist-status{text-transform:uppercase;letter-spacing:.05em}.object-checklist-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.25rem}.object-reports-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.object-report-link{width:100%;text-align:left;background:transparent;border:none;padding:.4rem .2rem;border-radius:6px;display:flex;flex-direction:column;gap:.1rem;cursor:pointer;color:inherit}.object-report-link:hover{background:color-mix(in srgb,var(--color-surface-hover) 80%,transparent)}.object-report-title{display:flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:500}.object-report-meta{display:flex;align-items:center;justify-content:space-between}.object-report-status{text-transform:uppercase}.card{background:var(--color-surface-base);border-radius:12px;border:1px solid var(--color-border);padding:.9rem 1rem 1rem;transition:border-color .15s ease,box-shadow .15s ease}.card h3{margin-top:0;margin-bottom:.5rem;font-size:1rem}.card-header-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem}.warehouse-filters{display:flex;align-items:center;gap:.5rem}.warehouse-filters select{background:var(--color-surface-base);color:var(--color-text-strong);border-radius:999px;border:1px solid var(--color-border-weak);padding:.35rem 1.9rem .35rem .75rem;font-size:.85rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,var(--color-text-muted) 50%,transparent 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position:calc(100% - .9rem) 50%,calc(100% - .55rem) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.search-input input{background:var(--color-surface-base);border-radius:999px;border:1px solid var(--color-border-weak);padding:.35rem .75rem;color:var(--color-text-strong);font-size:.85rem;min-width:220px}.search-input input:focus{outline:none;border-color:var(--color-primary)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;padding:.1rem .4rem;font-size:.8rem;border-radius:999px;background:var(--color-primary-strong);color:var(--color-on-primary)}.table-wrapper{margin-top:.5rem;overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl thead{background:var(--color-surface-base)}.tbl th,.tbl td{padding:.45rem .5rem;border-bottom:1px solid var(--color-surface-hover)}.tbl th{text-align:left;font-weight:500;color:var(--color-text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.tbl tbody tr:hover{background:var(--color-surface-base)}.tbl tbody tr.clickable-row{cursor:pointer;transition:background-color .14s ease,box-shadow .14s ease}.tbl tbody tr.clickable-row:hover{background:var(--color-surface-hover);box-shadow:inset 3px 0 0 var(--color-primary)}.tbl .text-right{text-align:right}.tbl .text-center{text-align:center}.row-warning{background:#dc262614}.row-warning:hover{background:#dc26261f}.status-pill{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.75rem}.status-pill.green{background:#16a34a26;color:#4ade80}.status-pill.gray{background:#4b55634d;color:var(--color-text-strong)}.status-pill.warning{background:#facc151f;color:#fef08a}.status-pill.info{background:#3b82f61f;color:#bfdbfe}.status-pill.danger{background:#dc26261f;color:#fecaca}[data-theme=light] .status-pill.green{color:#166534}[data-theme=light] .status-pill.warning{color:#854d0e}[data-theme=light] .status-pill.info{color:#1e40af}[data-theme=light] .status-pill.danger{color:#991b1b}[data-theme=light] .status-pill.gray{background:#6b728026}.alert{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.alert.error{padding:.6rem .75rem;border-radius:8px;background:#dc262626;border:1px solid rgba(220,38,38,.5);font-size:.85rem}.alert-close-btn{border:1px solid var(--color-border-strong);background:transparent;color:var(--color-text-muted);width:1.35rem;height:1.35rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;line-height:1;cursor:pointer;flex-shrink:0}.alert-close-btn:hover{color:var(--color-text-strong);background:var(--color-surface-hover)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;margin-top:.5rem}.form-grid label,.form-grid .form-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.form-grid label span,.form-grid .form-field>span{color:var(--color-text-strong)}.form-grid input,.form-grid textarea,.form-grid select{border-radius:8px;border:1px solid var(--color-border-weak);background:var(--color-surface-base);color:var(--color-text-strong);padding:.4rem .6rem;font-size:.9rem}.form-grid textarea{resize:vertical}.form-grid .wide{grid-column:1 / -1}.form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;align-items:center;gap:.5rem}.form-actions button{padding:.5rem 1rem;background:var(--color-primary);color:var(--color-on-primary);border-radius:8px;border:none;font-size:.9rem;cursor:pointer}.form-actions button:hover{background:var(--color-primary-hover)}.mt-16{margin-top:1rem}.groups-list ul{list-style:none;padding:0;margin:0}.groups-list li+li{margin-top:.25rem}.group-btn{width:100%;text-align:left;padding:.4rem .6rem;border-radius:8px;border:none;background:var(--color-surface-base);color:var(--color-text-strong);font-size:.85rem;cursor:pointer}.group-btn:hover,.group-btn.active{background:var(--color-surface-hover)}.group-header-row td,.group-header-cell{background:var(--color-surface-hover)!important;font-weight:600;font-size:.85rem;color:var(--color-text-strong);padding:.5rem .75rem!important;letter-spacing:.02em;border-bottom:2px solid var(--color-border)}.group-header-row:hover td{background:var(--color-surface-hover)!important;cursor:default}.group-header-row-mobile{background:var(--color-surface-hover);font-weight:600;font-size:.85rem;color:var(--color-text-strong);padding:.5rem .75rem;border-radius:8px;letter-spacing:.02em}.group-items{margin-top:.75rem}.group-items h4{margin:0 0 .5rem;font-size:.9rem}.group-items ul{list-style:none;padding:0;margin:0}.group-items li+li{margin-top:.25rem}.group-item-row{padding:.35rem .5rem;border-radius:8px;border:1px solid var(--color-surface-hover)}.group-item-link{width:100%;background:var(--color-surface-base);color:inherit;text-align:left;cursor:pointer}.group-item-link:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.group-item-row .title{font-size:.85rem}.group-item-row .meta{font-size:.8rem;color:var(--color-text-muted)}@media(max-width:960px){.supply-layout{grid-template-columns:minmax(0,1fr)}.supply-header{align-items:flex-start}.supply-header-title-row{flex-direction:column;align-items:flex-start;gap:.45rem}.supply-primary-nav{margin-left:0;flex-wrap:wrap}.supply-allocation-head-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.supply-allocation-grid,.supply-material-grid{grid-template-columns:minmax(0,1fr)}}.actions-cell{display:flex;align-items:center;gap:.35rem;white-space:nowrap}.warehouse-action-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface-base);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .14s ease}.warehouse-action-btn:hover{color:var(--color-text-strong);border-color:var(--color-primary);background:var(--color-surface-hover)}.warehouse-action-btn.danger:hover{border-color:#dc2626;color:#ef4444}[data-theme=light] .warehouse-action-btn.danger:hover{color:#991b1b;border-color:#991b1b}.warehouse-action-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.warehouse-action-icon{width:.95rem;height:.95rem}.attachment-list{margin:0;padding-left:1rem}.attachment-list li+li{margin-top:.25rem}.attachment-list a{color:var(--color-link);text-decoration:none}.attachment-list a:hover{text-decoration:underline}.file-preview-card{grid-column:1 / -1;display:flex;flex-direction:column;gap:.45rem;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-base);padding:.55rem .65rem}.file-preview-meta{display:flex;align-items:baseline;justify-content:space-between;gap:.65rem;color:var(--color-text-strong);font-size:.82rem}.file-preview-meta strong{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-preview-image{width:100%;max-height:220px;object-fit:contain;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface-hover)}.file-preview-pdf{width:100%;height:240px;border:1px solid var(--color-border);border-radius:8px;background:#fff}.file-preview-open-link{color:var(--color-link);font-size:.82rem;text-decoration:none}.file-preview-open-link:hover{text-decoration:underline}.modal-backdrop{position:fixed;inset:0;background:var(--modal-backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.2rem}.modal-card{width:min(780px,100%);max-height:calc(100vh - 2.4rem);overflow:auto;background:linear-gradient(160deg,var(--modal-surface-accent),var(--modal-surface));border:1px solid var(--color-border-strong);border-radius:16px;padding:1rem 1rem 1.1rem;box-shadow:var(--modal-shadow);animation:modal-pop-in .18s ease-out}.contact-modal{width:min(520px,100%)}.contact-modal-grid textarea{min-height:80px}.phone-input-inline{display:flex;align-items:center;gap:.3rem}.phone-input-inline .phone-prefix{padding:.35rem .55rem;border-radius:10px;border:1px solid var(--color-border-strong);background:var(--color-surface-elevated);font-size:.9rem;color:var(--color-text-muted)}.phone-input-inline input{flex:1}.modal-head{display:flex;align-items:center;justify-content:space-between;margin:-.15rem -.2rem .9rem;padding:0 .2rem .75rem;border-bottom:1px solid var(--color-border)}.modal-head h3{margin:0;font-size:1.28rem;letter-spacing:-.01em;color:var(--color-text-strong)}.modal-head .btn-ghost.small{width:30px;height:30px;border-radius:999px;padding:0;line-height:1;font-size:1rem;font-weight:600}.modal-card .form-grid{gap:.85rem 1rem}.modal-card .form-grid label span,.modal-card .form-grid .form-field>span{font-weight:500}.modal-card .form-grid input,.modal-card .form-grid textarea,.modal-card .form-grid select{border-radius:10px;border-color:var(--color-border-strong);color:var(--color-text-strong);background:var(--color-input-bg)}.modal-card .form-grid select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:1px solid var(--color-border-strong);background-color:var(--color-surface-base);color:var(--color-text-strong);font-size:.9rem;line-height:1.2;min-height:2.2rem;padding:.4rem 2.1rem .4rem .6rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a6adbb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;background-size:.85rem}.modal-card .form-grid select option{background:var(--color-surface-base);color:var(--color-text-strong)}.modal-card .form-grid input[type=number]::-webkit-outer-spin-button,.modal-card .form-grid input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-card .form-grid input[type=number]{-moz-appearance:textfield}.material-check-panel{margin-top:.35rem;padding:.45rem .55rem;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-surface-hover);display:flex;flex-direction:column;gap:.4rem}.material-check-panel.warn{border-color:color-mix(in srgb,#f59e0b 55%,var(--color-border));background:color-mix(in srgb,#f59e0b 10%,var(--color-surface-hover))}.material-check-panel p{margin:0;font-size:.82rem;color:var(--color-text-muted)}.material-similar-list{display:flex;flex-wrap:wrap;gap:.35rem}.modal-card .form-grid input:focus,.modal-card .form-grid textarea:focus,.modal-card .form-grid select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 24%,transparent)}.modal-card .form-actions{margin-top:.15rem}.modal-card .form-actions .btn-ghost{border-color:var(--color-border-strong)}.modal-card .form-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:0}.modal-card .form-field+.form-field{margin-top:.5rem}.modal-card .form-label{display:flex;flex-wrap:wrap;margin:0;font-size:.9rem;font-weight:500;color:var(--color-text-strong);line-height:1.3}.modal-card .form-input,.modal-card input.form-input,.modal-card textarea.form-input,.modal-card select.form-input{width:100%;min-height:45px;height:45px;padding:10px 14px;border-radius:10px;border:1px solid var(--color-border-strong);background:var(--color-surface-base);color:var(--color-text);font-family:inherit;font-size:.9rem;line-height:1.45;outline:none;resize:none;transition:border-color .18s,box-shadow .18s;box-sizing:border-box}.modal-card textarea.form-input{height:auto;min-height:45px;max-height:140px}.modal-card select.form-input{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a95aa' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - 12px) center;cursor:pointer}.modal-card select.form-input:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234f8ef7' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.modal-card select.form-input option{background:var(--color-surface-elevated);color:var(--color-text)}.modal-card .form-input::placeholder,.modal-card textarea.form-input::placeholder{color:var(--color-text-muted)}.modal-card .form-input:focus,.modal-card textarea.form-input:focus,.modal-card select.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 24%,transparent)}.modal-card::-webkit-scrollbar{width:10px}.modal-card::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-border-strong) 75%,transparent);border-radius:999px}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.supply-material-page{display:flex;flex-direction:column;gap:1rem}.supply-material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.material-description{margin-top:.85rem}.supply-history-page{display:flex;flex-direction:column;gap:1rem;min-width:0}.activity-logs-page{display:flex;flex-direction:column;gap:1rem}.activity-logs-filters{display:grid;grid-template-columns:1.5fr repeat(4,minmax(130px,.65fr)) repeat(2,minmax(180px,.9fr)) auto;gap:.6rem;align-items:end;margin-bottom:.5rem}.activity-logs-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:.7rem}.activity-logs-summary-card{appearance:none;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-hover);padding:.55rem .7rem;display:flex;flex-direction:column;gap:.12rem;text-align:left;width:100%}.activity-logs-summary-card.clickable{cursor:pointer}.activity-logs-summary-card.clickable:hover{border-color:color-mix(in srgb,var(--color-primary) 38%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface-hover))}.activity-logs-summary-card.active{border-color:color-mix(in srgb,var(--color-primary) 58%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface-hover))}.activity-logs-summary-card.error strong{color:#ef4444}[data-theme=light] .activity-logs-summary-card.error strong{color:#991b1b}.activity-logs-summary-card small{color:var(--color-text-muted);font-size:.72rem}.activity-logs-header-actions{display:inline-flex;align-items:center;gap:.45rem;flex-wrap:wrap}.activity-log-notice{border:1px solid color-mix(in srgb,#22c55e 45%,var(--color-border));border-radius:8px;background:color-mix(in srgb,#22c55e 14%,var(--color-surface-base));color:var(--color-text-strong);padding:.55rem .7rem;font-size:.84rem}.activity-log-prompt-modal{width:min(1100px,100%)}.activity-log-prompt-meta{margin:0 0 .55rem;color:var(--color-text-muted);font-size:.82rem}.activity-log-prompt-textarea{width:100%;min-height:420px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-base);color:var(--color-text-strong);padding:.6rem .7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.78rem;line-height:1.38;resize:vertical}.activity-log-prompt-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.activity-logs-summary-card span{color:var(--color-text-muted);font-size:.76rem}.activity-logs-summary-card strong{font-size:1.1rem;color:var(--color-text-strong)}.activity-logs-filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--color-text-muted)}.activity-logs-filters input,.activity-logs-filters select{border:1px solid var(--color-border-weak);border-radius:8px;background:var(--color-surface-base);color:var(--color-text-strong);padding:.45rem .6rem;font-size:.85rem}.activity-log-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.55rem}.activity-log-table-wrap{margin-top:.5rem;border:1px solid var(--color-border);border-radius:10px;overflow:auto;max-height:62vh}.activity-log-table{min-width:1080px}.activity-log-table thead th{position:sticky;top:0;z-index:1;background:var(--color-surface-base)}.activity-log-row td{padding-top:.42rem;padding-bottom:.42rem;vertical-align:middle;font-size:.84rem}.activity-log-user-cell{display:flex;flex-direction:column;gap:.1rem;line-height:1.2}.activity-log-path-cell{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem}.activity-log-details-row td{background:var(--color-surface-hover)}.activity-log-card{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-hover);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.4rem}.activity-log-card-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.activity-log-who{display:flex;flex-direction:column;gap:.1rem}.activity-log-top-pills{display:inline-flex;align-items:center;gap:.35rem}.activity-log-path{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8rem;color:var(--color-text-strong);word-break:break-all}.activity-log-meta{display:flex;flex-wrap:wrap;gap:.75rem;color:var(--color-text-muted);font-size:.8rem}.activity-log-actions-row{margin-top:.1rem}.activity-log-details{border-top:1px dashed var(--color-border);margin-top:.25rem;padding-top:.35rem;display:flex;flex-direction:column;gap:.22rem;color:var(--color-text-muted);font-size:.78rem;word-break:break-word}.activity-log-error-stack{margin:0;padding:.45rem .55rem;border:1px solid var(--color-border);border-radius:8px;background:color-mix(in srgb,var(--color-surface-base) 88%,#0b1220);color:var(--color-text-soft);font-size:.74rem;white-space:pre-wrap;word-break:break-word}.activity-log-pagination{margin-top:.7rem;display:flex;justify-content:flex-end;align-items:center;gap:.55rem}.history-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem .85rem}.history-filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.history-filters label span{color:var(--color-text-muted)}.history-filters select,.history-filters input{border:1px solid var(--color-border);background:var(--color-surface-elevated);color:var(--color-text-soft);border-radius:10px;padding:7px 12px 7px 14px;font-family:inherit;font-size:13px;min-height:36px;width:100%;outline:none;transition:.18s cubic-bezier(.4,0,.2,1)}.history-filters select:hover,.history-filters input:hover{border-color:var(--color-border-strong);color:var(--color-text)}.history-filters select:focus,.history-filters input:focus{border-color:var(--color-primary);color:var(--color-text);background:var(--color-surface-hover);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.history-filter-actions{display:flex;align-items:flex-end;gap:.5rem}.history-filter-actions button{border:none;background:var(--color-primary);color:var(--color-on-primary);border-radius:8px;padding:.45rem .75rem;cursor:pointer}.supply-mobile-only.hf-mobile-wrap{display:block!important;margin-bottom:.75rem}.hf-mobile-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem .85rem;background:var(--color-surface-base);border:1px solid var(--color-border);border-radius:10px;color:var(--color-text);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;box-sizing:border-box}.hf-mobile-toggle svg:first-child{color:var(--color-text-muted);flex-shrink:0}.hf-mobile-badge{width:7px;height:7px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.hf-mobile-chevron{margin-left:auto;color:var(--color-text-muted);transition:transform .2s ease;flex-shrink:0}.hf-mobile-chevron.open{transform:rotate(180deg)}.hf-mobile-body{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem;padding:.7rem;background:var(--color-surface-base);border:1px solid var(--color-border);border-radius:10px;box-sizing:border-box}.hf-mobile-field{display:flex;flex-direction:column;gap:.2rem;font-size:.82rem;min-width:0}.hf-mobile-field>span{color:var(--color-text-muted);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.hf-mobile-field input{width:100%;padding:.45rem .6rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-elevated);color:var(--color-text);font-size:.82rem;font-family:inherit;min-height:38px;outline:none;box-sizing:border-box;min-width:0}.hf-mobile-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 15%,transparent)}.hf-mobile-field .cselect-trigger{min-height:38px;padding:.45rem .6rem;font-size:.82rem;border-radius:8px}.hf-mobile-dates{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%;box-sizing:border-box}.hf-mobile-dates .hf-mobile-field{overflow:hidden}.hf-mobile-dates input[type=date]{width:100%;min-width:0;box-sizing:border-box;-webkit-appearance:none;appearance:none}.hf-mobile-actions{display:grid;grid-template-columns:1fr auto;gap:.5rem;padding-top:.15rem}.hf-mobile-apply{padding:.5rem;min-height:38px;border:none;border-radius:8px;background:var(--color-primary);color:var(--color-on-primary);font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer}.hf-mobile-reset{padding:.5rem .75rem;min-height:38px;border:1px solid var(--color-border);border-radius:8px;background:transparent;color:var(--color-text-muted);font-size:.82rem;font-family:inherit;cursor:pointer}.history-row{cursor:pointer}.history-row:hover{background:var(--color-surface-hover)}.batch-positions-table{width:100%;border-collapse:collapse;font-size:.85rem}.batch-positions-table th{padding:.5rem .75rem;text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.batch-positions-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.batch-positions-table tbody tr:last-child td{border-bottom:none}.batch-positions-table tbody tr:hover td{background:var(--color-surface-hover)}.history-actions-cell{width:88px;text-align:center;white-space:nowrap}.history-icon-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface-base);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0 .15rem;transition:all .14s ease}.history-icon-btn:hover:not(:disabled){color:var(--color-text-strong);border-color:var(--color-primary);background:var(--color-surface-hover)}.history-icon-btn:disabled{opacity:.6;cursor:not-allowed}.history-icon-btn.danger:hover:not(:disabled){border-color:#dc2626;color:#ef4444}[data-theme=light] .history-icon-btn.danger:hover:not(:disabled){color:#991b1b;border-color:#991b1b}.history-icon-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.history-action-icon{width:.95rem;height:.95rem}.movement-batch-tag{display:block;margin-top:.2rem;font-size:.75rem}.edit-log-badge{display:inline-block;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary);border:1px solid color-mix(in srgb,var(--color-primary) 30%,transparent);border-radius:6px;cursor:pointer;vertical-align:middle}.edit-log-badge:hover{background:color-mix(in srgb,var(--color-primary) 25%,transparent)}.edit-log-entry{padding:.6rem 0;border-bottom:1px solid var(--color-border)}.edit-log-entry:last-child{border-bottom:none}.edit-log-entry-header{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem;margin-bottom:.25rem}.edit-log-entry-date{color:var(--color-text-muted)}.edit-log-entry-body{font-size:.85rem;color:var(--color-text)}.edit-log-old{color:var(--color-text-muted);text-decoration:line-through}.edit-log-new{color:var(--color-text-strong);font-weight:500}.supply-mobile-only{display:none!important}.swp-cards{flex-direction:column;gap:.5rem}.swp-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:12px;padding:.85rem 1rem;cursor:pointer;transition:border-color .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent}.swp-card:active{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,transparent)}.swp-card--warn{border-left:3px solid #f59e0b}.swp-card--inactive{opacity:.65}.swp-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.35rem}.swp-card-name{font-size:.95rem;font-weight:650;color:var(--color-text-strong);line-height:1.3;flex:1;min-width:0}.swp-card-inv{font-size:.78rem;color:var(--color-text-muted);margin-bottom:.45rem;letter-spacing:.02em}.swp-card-metrics{display:flex;gap:1rem;margin-top:.35rem}.swp-card-metric{display:flex;align-items:baseline;gap:.3rem}.swp-card-metric-val{font-size:1.05rem;font-weight:700;color:var(--color-text-strong);font-variant-numeric:tabular-nums}.swp-card-metric-label{font-size:.78rem;color:var(--color-text-muted)}.swp-card-metric--warn .swp-card-metric-val{color:#f59e0b}.swp-card-alert{font-size:.75rem;color:#f59e0b;margin-top:.3rem;font-weight:500}.swp-card-actions{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.65rem;padding-top:.55rem;border-top:1px solid var(--color-border-weak)}.swp-card-act{display:inline-flex;align-items:center;gap:.3rem;min-height:38px;padding:.35rem .65rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-base);color:var(--color-text);font-size:.8rem;font-family:inherit;cursor:pointer;transition:border-color .14s,color .14s;-webkit-tap-highlight-color:transparent}.swp-card-act:active{border-color:var(--color-primary);color:var(--color-primary)}.swp-card-act--danger{color:#f87171;border-color:color-mix(in srgb,#f87171 30%,var(--color-border))}.swp-card-act--danger:active{color:#ef4444;border-color:#ef4444}.swp-card-act--success{color:#34d399;border-color:color-mix(in srgb,#34d399 30%,var(--color-border))}.swp-card-act--success:active{color:#10b981;border-color:#10b981}.sreq-cards{flex-direction:column;gap:.65rem}.sreq-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:12px;padding:1rem 1.1rem;cursor:pointer;transition:border-color .18s,box-shadow .18s}.sreq-card:active{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 20%,transparent)}.sreq-card--open{border-color:color-mix(in srgb,var(--color-primary) 40%,transparent)}.sreq-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:.6rem}.sreq-card-name{font-size:.95rem;font-weight:650;color:var(--color-text);line-height:1.3;min-width:0;word-break:break-word}.sreq-card-info{display:flex;flex-direction:column;gap:.3rem}.sreq-card-row{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:var(--color-text-soft);padding:.1rem 0}.sreq-card-label{color:var(--color-text-muted);font-size:.78rem}.sreq-card-items{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.4rem}.sreq-card-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;font-size:.82rem;padding:.3rem .5rem;border-radius:8px;background:color-mix(in srgb,var(--color-surface-base) 60%,var(--color-bg-app) 40%)}.sreq-card-item-name{font-weight:600;color:var(--color-text);min-width:0;word-break:break-word}.sreq-card-item-qty{color:var(--color-text-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.sreq-card-item-note{width:100%;font-size:.75rem;color:var(--color-text-muted);font-style:italic}.sreq-card-actions{display:flex;gap:.5rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--color-border)}.sreq-card-act{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:38px;border-radius:8px;border:1px solid var(--color-border);background:transparent;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s;color:var(--color-text-soft)}.sreq-card-act:active{transform:scale(.97)}.sreq-card-act--approve{color:#34d399}.sreq-card-act--approve:active{background:color-mix(in srgb,#34d399 12%,transparent);border-color:#34d399}.sreq-card-act--reject{color:#f87171}.sreq-card-act--reject:active{background:color-mix(in srgb,#f87171 12%,transparent);border-color:#f87171}.sreq-card-act--fulfill{color:#60a5fa}.sreq-card-act--fulfill:active{background:color-mix(in srgb,#60a5fa 12%,transparent);border-color:#60a5fa}.cpty-cards{flex-direction:column;gap:.65rem}.cpty-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:12px;padding:1rem 1.1rem;cursor:pointer}.cpty-card:active{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 20%,transparent)}.cpty-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:.6rem}.cpty-card-name{font-size:.95rem;font-weight:650;color:var(--color-text);line-height:1.3;min-width:0;word-break:break-word}.cpty-card-info{display:flex;flex-direction:column;gap:.3rem}.cpty-card-row{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:var(--color-text-soft)}.cpty-card-label{color:var(--color-text-muted);font-size:.78rem}.cpty-card-link{color:var(--color-primary);text-decoration:none}.cpty-card-link:active{text-decoration:underline}.cpty-card-actions{display:flex;gap:.5rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--color-border)}.cpty-card-act{flex:1;display:inline-flex;align-items:center;justify-content:center;min-height:38px;border-radius:8px;border:1px solid var(--color-border);background:transparent;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s;color:var(--color-text-soft)}.cpty-card-act:active{transform:scale(.97)}.cpty-card-act--danger{color:#f87171}.cpty-card-act--danger:active{background:color-mix(in srgb,#f87171 12%,transparent);border-color:#f87171}.smh-cards{flex-direction:column;gap:.5rem}.smh-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:12px;padding:.8rem .95rem;cursor:pointer;transition:border-color .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent}.smh-card:active{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,transparent)}.smh-card-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.3rem}.smh-card-date{font-size:.78rem;color:var(--color-text-muted);flex-shrink:0;font-variant-numeric:tabular-nums}.smh-card-material{font-size:.9rem;font-weight:600;color:var(--color-text-strong);line-height:1.3;margin-bottom:.35rem}.smh-card-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.smh-card-qty{display:flex;align-items:baseline;gap:.25rem}.smh-card-qty-val{font-size:1.05rem;font-weight:700;color:var(--color-text-strong);font-variant-numeric:tabular-nums}.smh-card-qty-unit{font-size:.78rem;color:var(--color-text-muted)}.smh-card-user{font-size:.82rem;color:var(--color-text-soft)}.smh-card-actions{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--color-border-weak)}.smh-card-act{display:inline-flex;align-items:center;gap:.3rem;min-height:38px;padding:.35rem .65rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-base);color:var(--color-text);font-size:.8rem;font-family:inherit;cursor:pointer;transition:border-color .14s,color .14s;-webkit-tap-highlight-color:transparent}.smh-card-act:active{border-color:var(--color-primary);color:var(--color-primary)}.smh-card-act--danger{color:#f87171;border-color:color-mix(in srgb,#f87171 30%,var(--color-border))}.smh-card-act--danger:active{color:#ef4444;border-color:#ef4444}.movement-qty-hint{display:block;margin-top:.35rem}.autocomplete-wrapper{position:relative}.autocomplete-wrapper input{color:var(--color-text-strong)!important;background:var(--color-input-bg)}.autocomplete-wrapper input::placeholder{color:var(--color-text-dim)}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;max-height:220px;overflow-y:auto;background:var(--color-surface-elevated);border:1px solid var(--color-border-strong);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;list-style:none;margin:2px 0 0;padding:4px 0}.autocomplete-dropdown li{padding:6px 10px;cursor:pointer;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-strong)}.autocomplete-dropdown li:hover{background:var(--color-surface-hover)}.stub-user-form{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem;padding:.65rem;background:var(--color-surface-base);border:1px solid var(--color-border);border-radius:8px}.stub-user-form input{padding:.4rem .6rem;font-size:.85rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-input-text);font-family:inherit}.btn-primary.small{padding:.35rem .75rem;font-size:.8rem;font-weight:600;background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:6px;cursor:pointer;font-family:inherit}.btn-primary.small:disabled{opacity:.5;cursor:not-allowed}.movement-material-add-row{margin-top:.4rem}.movement-quantity-row{display:flex;align-items:stretch}.movement-quantity-row input{flex:1;border-top-right-radius:0;border-bottom-right-radius:0}.movement-quantity-unit{display:inline-flex;align-items:center;padding:0 .7rem;border:1px solid var(--color-border);border-left:0;border-top-right-radius:10px;border-bottom-right-radius:10px;background:var(--color-surface-base);color:var(--color-text-muted);font-size:.84rem;white-space:nowrap}.movement-draft-actions{grid-column:1 / -1;margin-top:-.1rem}.movement-add-position-btn{width:32px;height:32px;border-radius:999px;padding:0;line-height:1;font-size:1.2rem;font-weight:600}.movement-draft-list{grid-column:1 / -1;border:1px solid var(--color-border);border-radius:10px;padding:.45rem .5rem;background:var(--color-surface-base)}.movement-draft-list .muted{margin:.25rem 0}.movement-draft-table td,.movement-draft-table th{vertical-align:middle}.movement-draft-table .history-icon-btn{margin:0}.history-file-modal{width:min(980px,100%)}.history-file-modal .file-preview-image{max-height:65vh}.history-file-modal .file-preview-pdf{height:65vh}.history-file-modal-actions{display:flex;justify-content:flex-end}.movement-type-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .48rem;border-radius:999px;font-size:.78rem;border:1px solid var(--color-border);color:var(--color-text-strong);background:var(--color-surface-base)}.movement-type-icon{width:.82rem;height:.82rem}.movement-type-pill.type-create{border-color:#2563eb73}.movement-type-pill.type-add{border-color:#22c55e73}.movement-type-pill.type-move{border-color:#0ea5e973}.movement-type-pill.type-return{border-color:#f9731673}.movement-type-pill.type-writeoff{border-color:#ef444473}.tasks-page{display:flex;flex-direction:column;gap:1rem}.tasks-actions{display:flex;gap:.5rem}.tasks-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.tasks-kpi-card{display:flex;flex-direction:column;gap:.25rem}.tasks-kpi-card strong{font-size:1.35rem}.tasks-toolbar{display:grid;grid-template-columns:1.2fr 2fr 1fr 1fr 1fr;gap:.6rem}.tasks-page input,.tasks-page textarea,.tasks-page select{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-base);color:var(--color-text-strong);padding:.4rem .6rem;font-size:.86rem}.tasks-page select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2rem;background-image:linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 1px),calc(100% - 9px) calc(50% - 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}.tasks-page input:focus,.tasks-page textarea:focus,.tasks-page select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.tasks-view-switcher{display:flex;flex-wrap:wrap;gap:.4rem}.tasks-bulk-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;position:sticky;top:.25rem;z-index:6;box-shadow:0 8px 20px #0206172e}.tasks-layout{display:grid;grid-template-columns:2fr 1fr;gap:1rem}.tasks-main,.tasks-side{min-height:520px}.tasks-priority{display:inline-flex;min-width:44px;justify-content:center;border-radius:999px;font-size:.74rem;border:1px solid var(--color-border);padding:.12rem .42rem}.tasks-priority.p1{border-color:#ef44448c;color:#ef4444}.tasks-priority.p2{border-color:#f973168c;color:#f97316}.tasks-priority.p3{border-color:#3b82f68c;color:#60a5fa}[data-theme=light] .tasks-priority.p1{color:#991b1b;border-color:#b91c1c73}[data-theme=light] .tasks-priority.p2{color:#7c2d12;border-color:#7c2d1273}[data-theme=light] .tasks-priority.p3{color:#1e40af;border-color:#1e40af73}.tasks-priority.p4{border-color:#94a3b88c;color:var(--color-text-muted)}.tasks-kanban-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}.tasks-kanban-col{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-base);padding:.45rem;display:flex;flex-direction:column;gap:.45rem;min-height:460px}.tasks-kanban-head{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.tasks-groups{display:flex;flex-direction:column;gap:.7rem}.tasks-group{padding:.65rem}.tasks-group h4{margin:0 0 .35rem;font-size:.9rem}.tasks-group-list{display:flex;flex-direction:column;gap:.45rem}.tasks-matrix-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.tasks-matrix-card{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-base);padding:.65rem;display:flex;flex-direction:column;gap:.35rem}.tasks-matrix-card h4{margin:0;font-size:.9rem}.tasks-card{text-align:left;border:1px solid var(--color-border);background:var(--color-surface-elevated);border-radius:9px;padding:.45rem .5rem;display:flex;flex-direction:column;gap:.25rem}.tasks-card-check{display:inline-flex;align-items:center;margin-bottom:.1rem}.tasks-card-check input,.tasks-main input[type=checkbox]{width:.95rem;height:.95rem;accent-color:var(--color-primary)}.tasks-card:hover{border-color:var(--color-primary)}.tasks-card.selected{border-color:color-mix(in srgb,var(--color-primary) 72%,var(--color-border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 36%,transparent);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface-elevated))}.tasks-main .tbl tr.selected{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface-base))}.tasks-meta-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.tasks-meta-list>div{display:flex;flex-direction:column;gap:.15rem}.tasks-detail-actions{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.6rem}.tasks-detail-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:.8rem}.tasks-detail-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}.tasks-detail-form label:nth-child(1),.tasks-detail-form label:nth-child(2){grid-column:1 / -1}.tasks-detail-form input,.tasks-detail-form textarea,.tasks-detail-form select{border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-base);color:var(--color-text-strong);padding:.35rem .5rem}.tasks-detail-form button{grid-column:1 / -1}.tasks-attachments{margin-top:.9rem}.tasks-attachments-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem}.tasks-attachment-row{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem;border-radius:6px;background:var(--bg-secondary)}.tasks-attachment-name{flex:1;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks-attachment-size{font-size:.75rem;white-space:nowrap}.tasks-attach-upload{cursor:pointer;display:inline-block}.tasks-attach-upload .disabled{opacity:.6;pointer-events:none}.tasks-comments{margin-top:.9rem}.tasks-comments-list{max-height:220px;overflow:auto;border:1px solid var(--color-border);border-radius:10px;padding:.45rem;display:flex;flex-direction:column;gap:.45rem}.tasks-comment{border-bottom:1px dashed var(--color-border);padding-bottom:.3rem}.tasks-comment:last-child{border-bottom:0;padding-bottom:0}.tasks-comment p{margin:.2rem 0}.tasks-comment-form{margin-top:.55rem;display:flex;gap:.45rem}.tasks-comment-form input{flex:1}.tasks-create-modal{width:min(980px,100%)}.tasks-help-modal{width:min(920px,100%)}.tasks-help-content{display:flex;flex-direction:column;gap:.55rem;font-size:.9rem}.tasks-help-content h4{margin:.2rem 0 0}.tasks-help-content ul,.tasks-help-content ol{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.22rem}@media(max-width:1280px){.tasks-toolbar,.tasks-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tasks-layout{grid-template-columns:1fr}.tasks-kanban-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tasks-matrix-grid,.tasks-detail-form{grid-template-columns:minmax(0,1fr)}.tasks-bulk-actions{position:static;box-shadow:none}}.profile-page{display:flex;flex-direction:column;gap:1rem}.profile-hero{position:relative;overflow:hidden;background:var(--gradient-primary);box-shadow:var(--shadow-primary);border-radius:16px}.profile-hero-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.2rem 1.4rem;position:relative}.profile-hero-left{display:flex;align-items:center;gap:1rem}.profile-hero-avatar-shell{display:inline-flex}.profile-hero-avatar{position:relative;width:96px;height:96px;border-radius:999px;box-shadow:0 0 0 4px #ffffff3d,0 0 0 10px var(--color-primary-glow);overflow:hidden}.profile-hero-avatar-img,.profile-hero-avatar-fallback{width:100%;height:100%;border-radius:999px;object-fit:cover;display:flex;align-items:center;justify-content:center}.profile-hero-avatar-fallback{color:#ffffffeb;background:#0f172a7a;font-weight:600;font-size:1.4rem}.profile-hero-avatar-upload{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 0,transparent 0,transparent 40%,rgba(15,23,42,.82) 100%);opacity:0;transition:opacity .18s ease-out;cursor:pointer}.profile-hero-avatar:hover .profile-hero-avatar-upload{opacity:1}.profile-hero-avatar-upload input{display:none}.profile-hero-avatar-upload-icon{font-size:1.35rem;color:#fffffff2}.profile-hero-meta h2{margin:0;font-size:1.4rem;color:#f9fafb}.profile-hero-subline{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.profile-hero-login{font-size:.9rem;color:#e2e8f0e6}.profile-hero-role-badge{font-size:max(.75rem,12px);padding:.1rem .6rem;border-radius:999px;background:#0f172a47;color:#f8fafcf5;border:1px solid rgba(226,232,240,.3)}.profile-hero-right{display:flex;align-items:center;gap:.75rem}.profile-hero-time{display:flex;flex-direction:column;align-items:flex-end}.profile-hero-time-label{font-size:.75rem;color:#e2e8f0d9}.profile-hero-time-value{margin-top:.15rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1.05rem;color:#f9fafb}.profile-hero-toast{position:absolute;right:1.4rem;bottom:1rem;padding:.4rem .9rem;border-radius:999px;background:#10b981f2;color:#ecfdf5;font-size:.78rem;box-shadow:var(--shadow-sm);animation:profile-toast-in .18s ease-out}@keyframes profile-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.profile-header{display:flex;align-items:center;gap:.85rem}.profile-avatar{width:52px;height:52px;border-radius:999px;background:var(--color-primary-strong);color:var(--color-on-primary);display:flex;align-items:center;justify-content:center;font-weight:600}.user-detail-hero{padding-top:1rem}.user-detail-top-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.user-detail-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.user-detail-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:.5rem}.user-detail-avatar-shell{position:relative;display:inline-flex}.user-detail-avatar{width:94px;height:94px;font-size:1.5rem;background:var(--color-surface-hover);color:var(--color-text-strong);overflow:hidden}.user-online-dot{position:absolute;right:4px;bottom:4px;width:12px;height:12px;border-radius:999px;border:2px solid var(--color-surface-base)}.user-online-dot.online{background:#22c55e;box-shadow:0 0 0 1px #22c55e59}.user-online-dot.offline{background:#9ca3af;box-shadow:0 0 0 1px #9ca3af59}.user-detail-avatar-img{width:100%;height:100%;border:none;box-shadow:none;display:block}.user-detail-meta{display:flex;flex-direction:column;gap:.5rem;min-width:260px}.user-detail-meta h3{margin:0;font-size:1.2rem}.user-detail-subline{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.user-detail-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.user-detail-stat{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-hover);padding:.5rem .65rem;display:flex;flex-direction:column;gap:.2rem}.user-detail-stat span{color:var(--color-text-muted);font-size:.78rem}.user-detail-stat strong{color:var(--color-text-strong);font-size:.86rem}.profile-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:.5rem}.profile-avatar-img{width:84px;height:84px;border-radius:999px;object-fit:cover;border:2px solid var(--color-border)}.profile-avatar-upload{font-size:.75rem;color:var(--color-text-strong);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .55rem;cursor:pointer}.profile-avatar-upload input{display:none}.profile-headline h2{margin:0}.profile-headline p{margin:.15rem 0 0}.profile-save-message{color:var(--color-text-muted);font-size:.85rem}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.profile-body{display:grid;grid-template-columns:300px minmax(0,1fr);gap:1.25rem;align-items:flex-start}.profile-sidebar{display:flex;flex-direction:column;gap:1rem}.profile-main{min-width:0}.profile-card h3{margin-top:0}.profile-account-list{display:flex;flex-direction:column;gap:.65rem}.profile-account-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;padding-bottom:.45rem;border-bottom:1px solid var(--color-border)}.profile-account-label{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--color-text-muted)}.profile-account-emoji{width:1.3rem;text-align:center}.profile-account-label-text{white-space:nowrap}.profile-account-value{font-size:.86rem;font-weight:600;color:var(--color-text-strong);text-align:right}.profile-password-button{margin-top:1rem;width:100%;border-radius:8px;padding:.5rem .9rem;border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);font-size:.88rem;font-weight:500;cursor:pointer;transition:background .15s ease-out,color .15s ease-out,box-shadow .15s ease-out}.profile-password-button:hover:not(:disabled){background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-primary)}.profile-password-button:disabled{opacity:.5;cursor:not-allowed}.profile-grid>.card:last-child{grid-column:1 / -1}.user-detail-main-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch;margin-bottom:1rem}.user-detail-main-grid>.card{min-height:100%}.user-detail-edit-card .profile-form{gap:.55rem .8rem}.user-detail-edit-card .profile-form label{font-size:.8rem}.user-detail-edit-card .profile-form input,.user-detail-edit-card .profile-form select{padding:.38rem .52rem}.profile-info-list{display:flex;flex-direction:column;gap:.65rem}.profile-info-row{display:flex;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--color-border);padding-bottom:.45rem}.profile-info-row strong{text-align:right}.profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.profile-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.profile-form label span{color:var(--color-text-muted)}.profile-form input,.profile-form select{border:1px solid var(--color-border);background:var(--color-surface-base);color:var(--color-text-strong);border-radius:8px;padding:.45rem .6rem}.profile-form input:focus,.profile-form select:focus{outline:none;border-color:var(--color-primary)}.profile-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end}.profile-form-actions button{border:none;background:var(--color-primary);color:var(--color-on-primary);border-radius:8px;padding:.5rem .9rem;cursor:pointer}.profile-form-actions button:disabled{opacity:.6;cursor:not-allowed}.avatar-modal-card{max-width:760px}.avatar-editor-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:1rem;align-items:start}.avatar-editor-canvas-wrap{border:1px solid var(--color-border);border-radius:12px;overflow:hidden;width:320px;height:320px;touch-action:none}.avatar-editor-canvas-wrap canvas{display:block;width:320px;height:320px}.avatar-editor-controls{display:flex;flex-direction:column;gap:.75rem}.avatar-editor-controls label{display:flex;flex-direction:column;gap:.35rem}.avatar-editor-controls input[type=range]{width:100%}.avatar-editor-rotate-row{display:flex;gap:.5rem}.avatar-editor-error{color:#ef4444;font-size:.85rem;margin:0}[data-theme=light] .avatar-editor-error{color:#991b1b}.avatar-editor-actions{display:flex;justify-content:flex-end;gap:.5rem}.avatar-editor-actions button{border:none;background:var(--color-primary);color:var(--color-on-primary);border-radius:8px;padding:.5rem .9rem;cursor:pointer}.profile-settings{display:flex;flex-direction:column;gap:.75rem}.profile-theme-block{display:flex;flex-direction:column;gap:.6rem}.profile-setting-caption{margin:0;font-size:.8rem;color:var(--color-text-muted)}.profile-theme-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.profile-theme-card{border-radius:10px;border:1px solid var(--color-border);padding:.55rem .4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;background:var(--color-surface-base);color:var(--color-text-soft);font-size:.8rem;cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out,transform .12s ease-out}.profile-theme-card-icon{font-size:1.1rem}.profile-theme-card.is-active{border-color:var(--color-primary);background:#2563eb1f;color:var(--color-text-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.profile-theme-card:disabled{opacity:.6;cursor:not-allowed}.profile-toggles{display:flex;flex-direction:column;gap:.6rem;margin-top:.4rem}.profile-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.profile-toggle-text{font-size:.84rem;color:var(--color-text-soft)}.profile-toggle{position:relative;display:inline-flex;align-items:center}.profile-toggle input{position:absolute;inset:0;opacity:0;cursor:pointer}.profile-toggle-track{width:44px;height:24px;border-radius:999px;background:var(--color-border);display:inline-flex;align-items:center;padding:2px;transition:background .18s ease-out}.profile-toggle-thumb{width:18px;height:18px;border-radius:999px;background:#fff;box-shadow:0 1px 2px #0f172a8c;transform:translate(0);transition:transform .18s ease-out,background .18s ease-out}[data-theme=dark] .profile-toggle-thumb{background:#e2e8f0}.profile-toggle input:checked+.profile-toggle-track{background:var(--color-primary)}.profile-toggle input:checked+.profile-toggle-track .profile-toggle-thumb{transform:translate(14px);background:var(--color-on-primary)}[data-theme=dark] .profile-toggle input:checked+.profile-toggle-track .profile-toggle-thumb{background:#e2e8f0}.profile-form-full{grid-column:1 / -1}.profile-clock{display:inline-block;padding:.45rem .8rem;border-radius:8px;background:var(--color-surface-hover);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1rem;color:var(--color-primary)}.profile-setting-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.profile-setting-row select{border:1px solid var(--color-border);background:var(--color-surface-base);color:var(--color-text-strong);border-radius:8px;padding:.35rem .6rem}.profile-setting-row.checkbox{justify-content:flex-start}@media(max-width:960px){.activity-logs-summary,.activity-logs-filters{grid-template-columns:minmax(0,1fr)}.activity-log-table-wrap{max-height:55vh}.user-detail-top-grid,.user-detail-stats,.profile-grid,.profile-body{grid-template-columns:minmax(0,1fr)}.profile-hero-inner{flex-direction:column;align-items:flex-start}.user-detail-main-grid,.profile-form,.avatar-editor-layout{grid-template-columns:minmax(0,1fr)}.avatar-editor-canvas-wrap,.avatar-editor-canvas-wrap canvas{width:100%;max-width:320px;height:auto;aspect-ratio:1 / 1}}.tasks-root{display:flex;height:calc(100vh - var(--topbar-h, 52px));overflow:hidden;background:var(--color-bg-app)}.tasks-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.tasks-root.has-detail .tasks-main{flex:1;min-width:0}.tasks-root.has-detail .kanban-column{flex:1 1 0%;min-width:130px}.tasks-root.has-detail .tasks-kanban{gap:8px;padding:12px 14px 28px}.tasks-toolbar{display:flex;flex-direction:column;gap:8px;padding:10px 20px;border-bottom:1px solid var(--color-border);background:var(--color-surface-elevated);flex-shrink:0;border-radius:10px}.tasks-toolbar-top{display:flex;align-items:center;gap:8px;justify-content:space-between}.tasks-toolbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.tasks-toolbar-search-row{display:flex;align-items:center;gap:8px}.tasks-filters-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tasks-filter-toggle{display:none}.tasks-tabs{display:flex;background:var(--color-surface-base);border-radius:10px;padding:3px;gap:2px;flex-shrink:0}.tasks-tab{padding:7px 18px;border-radius:8px;border:none;background:transparent;color:var(--color-text-muted);font-size:13.5px;font-weight:500;cursor:pointer;transition:background .18s,color .18s;white-space:nowrap;font-family:inherit}.tasks-tab:hover:not(.active){color:var(--color-text);background:var(--color-surface-hover)}.tasks-tab.active{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--color-primary) 35%,transparent)}.tasks-toolbar-right{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end;min-width:0}.tasks-search-wrap{position:relative}.tasks-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:14px;pointer-events:none}.tasks-search{width:200px;padding:7px 12px 7px 32px;border-radius:10px;border:1px solid var(--color-border-strong);background:var(--color-surface-base);color:var(--color-text);font-size:13px;font-family:inherit;outline:none;transition:border-color .18s,width .2s,box-shadow .18s}.tasks-search:focus{border-color:var(--color-primary);width:250px;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.tasks-search::placeholder{color:var(--color-text-muted)}.tasks-filter-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:10px;border:1px solid var(--color-border-strong);background:var(--color-surface-base);color:var(--color-text-muted);font-family:inherit;font-size:13px;cursor:pointer;transition:border-color .18s,color .18s,background .18s;white-space:nowrap}.tasks-filter-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}.tasks-filter-btn.has-filter{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.tasks-filter-btn select{background:transparent;border:none;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;outline:none;-webkit-appearance:none;padding-right:2px}.tasks-filter-btn select option{background:var(--color-surface-elevated);color:var(--color-text)}.tasks-view-toggle{display:flex;background:var(--color-surface-base);border-radius:10px;padding:3px;gap:2px;flex-shrink:0}.tasks-view-btn{padding:6px 10px;border-radius:7px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;transition:background .18s,color .18s}.tasks-view-btn:hover:not(.active){color:var(--color-text-soft)}.tasks-view-btn.active{background:var(--color-surface-hover);color:var(--color-text)}.tasks-btn-new{display:flex;align-items:center;gap:6px;padding:8px 18px;border-radius:10px;border:none;background:var(--color-primary);color:#fff;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .18s,transform .1s,box-shadow .18s;white-space:nowrap;flex-shrink:0;box-shadow:0 2px 8px color-mix(in srgb,var(--color-primary) 30%,transparent)}.tasks-btn-new:hover{background:var(--color-primary-hover);box-shadow:0 4px 16px color-mix(in srgb,var(--color-primary) 40%,transparent);transform:translateY(-1px)}.tasks-stats-bar{display:flex;gap:6px;padding:12px 20px 0;flex-wrap:wrap;flex-shrink:0}.tasks-stat-chip{display:flex;align-items:center;gap:7px;padding:6px 12px;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:10px;font-size:12.5px;color:var(--color-text-muted);cursor:pointer;transition:border-color .18s,background .18s,color .18s;-webkit-user-select:none;user-select:none}.tasks-stat-chip:hover{border-color:var(--color-border-strong)}.tasks-stat-chip.active{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary)}.tasks-stat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.tasks-stat-count{font-weight:700;color:var(--color-text);font-size:13px}.tasks-stat-chip.active .tasks-stat-count{color:var(--color-primary)}.tasks-list{flex:1;overflow-y:auto;padding:12px 20px 20px;display:flex;flex-direction:column;gap:4px}.tasks-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-muted);padding:60px 20px;gap:10px;text-align:center}.tasks-empty-icon{font-size:48px;opacity:.3}.task-row{display:grid;grid-template-columns:4px 1fr auto auto;gap:14px;align-items:center;padding:12px 16px;background:var(--color-surface-elevated);border:1px solid transparent;border-radius:10px;cursor:pointer;transition:background .18s,border-color .18s;animation:taskFadeIn .3s ease both}@keyframes taskFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.task-row:hover{background:var(--color-surface-base);border-color:var(--color-border)}.task-row.selected{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface-elevated));border-color:var(--color-primary)}.task-row.overdue{border-left:3px solid #ef4444}.task-row-priority{width:4px;height:28px;border-radius:2px;flex-shrink:0}.task-row-main{min-width:0}.task-row-title{font-size:15px;font-weight:600;color:var(--color-text-strong);letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}.task-row-sub{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted);flex-wrap:nowrap;overflow:hidden}.task-row-project{color:var(--color-text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.task-row-desc{display:none}@media(max-width:768px){.task-row-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;color:var(--color-text-muted);margin-top:2px;line-height:1.4}}.task-row-tag{padding:1px 7px;background:var(--color-surface-base);border-radius:4px;font-size:11px;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.task-row-bottom{display:contents}.task-row-assignees{display:flex;gap:0;width:76px;flex-shrink:0;justify-content:flex-start;align-items:center}.task-row-right{display:flex;align-items:center;gap:10px;width:210px;flex-shrink:0;justify-content:flex-end}.task-row-deadline{font-size:12px;color:var(--color-text-muted);white-space:nowrap;width:80px;text-align:right;flex-shrink:0}.obj-sc-planned{--sc: #60a5fa}.obj-sc-in_progress{--sc: #fbbf24}.obj-sc-completed{--sc: #34d399}.obj-sc-overdue{--sc: #f87171}.obj-sc-cancelled,.obj-sc-pending{--sc: #94a3b8}.obj-sc-returned{--sc: #f97316}.obj-sc-zdf{--sc: #818cf8}.obj-sc-bracket{--sc: #60a5fa}.obj-sc-luminaire{--sc: #fbbf24}[data-theme=light] .obj-sc-planned{--sc: #1e40af}[data-theme=light] .obj-sc-in_progress{--sc: #92400e}[data-theme=light] .obj-sc-completed{--sc: #065f46}[data-theme=light] .obj-sc-overdue{--sc: #991b1b}[data-theme=light] .obj-sc-cancelled,[data-theme=light] .obj-sc-pending{--sc: #374151}[data-theme=light] .obj-sc-returned{--sc: #7c2d12}[data-theme=light] .obj-sc-zdf{--sc: #3730a3}[data-theme=light] .obj-sc-bracket{--sc: #1e40af}[data-theme=light] .obj-sc-luminaire{--sc: #92400e}.obj-prio-low{--sc: #94a3b8}.obj-prio-medium{--sc: #60a5fa}.obj-prio-high{--sc: #fbbf24}.obj-prio-urgent{--sc: #f87171}[data-theme=light] .obj-prio-low{--sc: #374151}[data-theme=light] .obj-prio-medium{--sc: #1e40af}[data-theme=light] .obj-prio-high{--sc: #92400e}[data-theme=light] .obj-prio-urgent{--sc: #991b1b}.task-sc-new{--sc: #3b82f6}.task-sc-in_progress{--sc: #f59e0b}.task-sc-paused{--sc: #9ca3af}.task-sc-done_pending{--sc: #8b5cf6}.task-sc-confirmed{--sc: #10b981}.task-sc-returned{--sc: #f97316}.task-sc-rejected{--sc: #ef4444}.task-sc-cancelled{--sc: #6b7280}.task-sc-restored_from_rejected{--sc: #6366f1}.task-sc-restored_from_cancelled{--sc: #059669}[data-theme=light] .task-sc-new{--sc: #1d4ed8}[data-theme=light] .task-sc-in_progress{--sc: #92400e}[data-theme=light] .task-sc-paused{--sc: #374151}[data-theme=light] .task-sc-done_pending{--sc: #5b21b6}[data-theme=light] .task-sc-confirmed{--sc: #065f46}[data-theme=light] .task-sc-returned{--sc: #7c2d12}[data-theme=light] .task-sc-rejected{--sc: #991b1b}[data-theme=light] .task-sc-cancelled{--sc: #1f2937}[data-theme=light] .task-sc-restored_from_rejected{--sc: #3730a3}[data-theme=light] .task-sc-restored_from_cancelled{--sc: #065f46}.task-row-status{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;min-width:90px;flex-shrink:0;text-align:center;display:inline-flex;align-items:center;justify-content:center}.task-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;border:2px solid var(--color-surface-elevated);letter-spacing:0}.task-avatar+.task-avatar{margin-left:-8px}.task-avatar-sm{width:22px;height:22px;font-size:8px;border-width:1.5px}.task-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.task-avatar-md{width:30px;height:30px;font-size:10px;flex-shrink:0;margin-top:2px}.tasks-kanban{flex:1;display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:16px 20px 28px;align-items:flex-start;min-width:0;min-height:0;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.tasks-kanban::-webkit-scrollbar{height:6px}.tasks-kanban::-webkit-scrollbar-track{background:transparent}.tasks-kanban::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}.kanban-column{flex:1 1 0%;min-width:150px;display:flex;flex-direction:column;background:var(--color-surface-elevated);border-radius:14px;border:1px solid var(--color-border);border-top-width:3px;overflow:hidden;max-height:calc(100vh - 160px);align-self:flex-start}.kanban-column-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--color-border);flex-shrink:0}.kanban-column-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.kanban-column-title{font-size:12px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;flex:1}.kanban-column-count{margin-left:auto;background:var(--color-surface-base);padding:1px 7px;border-radius:10px;font-size:11px;color:var(--color-text-muted);font-weight:600}.kanban-column-body{flex:1;padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:80px;min-width:0}.kanban-card{padding:12px;background:var(--color-surface-base);border:1px solid var(--color-border);border-radius:10px;cursor:pointer;transition:border-color .18s,transform .18s,box-shadow .18s}.kanban-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.kanban-card.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface-base))}.kanban-card-title{font-size:13px;font-weight:500;color:var(--color-text);margin-bottom:10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kanban-card-footer{display:flex;align-items:center;gap:8px}.kanban-card-priority{width:7px;height:7px;border-radius:50%;flex-shrink:0}.kanban-card-due{font-size:11px;color:var(--color-text-muted)}.kanban-card-due.overdue{color:#f87171;font-weight:600}.kanban-card-due.soon{color:#f59e0b}[data-theme=light] .kanban-card-due.overdue{color:#991b1b}[data-theme=light] .kanban-card-due.soon{color:#92400e}.kanban-card-avatars{display:flex;margin-left:auto}.kanban-card-avatars .task-avatar{border-color:var(--color-surface-base)}.kanban-empty{padding:20px 14px;text-align:center;color:var(--color-text-muted);font-size:12px;opacity:.6}@media(max-width:1400px){.kanban-column{min-width:130px}.tasks-root.has-detail .kanban-column{min-width:110px}.kanban-card-title{font-size:12px}.kanban-column-title{font-size:11px}}@media(max-width:1100px){.kanban-column{min-width:110px;border-radius:10px}.tasks-root.has-detail .kanban-column{min-width:90px}.kanban-card{padding:8px}.kanban-card-title{font-size:11px;margin-bottom:6px;-webkit-line-clamp:2}.kanban-column-header{padding:8px 10px}.kanban-column-body{padding:6px;gap:4px}.tasks-kanban{gap:6px;padding:10px 12px 28px}}.task-tag{padding:3px 10px;background:var(--color-surface-base);border-radius:4px;font-size:12px;color:var(--color-text-muted)}.td-icon-svg{width:1em;height:1em;display:inline-block;vertical-align:middle;flex-shrink:0}.td-panel{width:480px;flex-shrink:0;display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-surface-elevated);border-left:1px solid var(--color-border);animation:tdSlideIn .28s cubic-bezier(.22,1,.36,1)}@keyframes tdSlideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.td-topbar{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.td-close{width:34px;height:34px;border-radius:10px;border:none;background:var(--color-surface-base);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background .18s,color .18s;flex-shrink:0}.td-close .td-icon-svg{width:16px;height:16px}.td-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.td-status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;font-size:12.5px;font-weight:600;letter-spacing:.2px;background:color-mix(in srgb,var(--td-sc, #9ca3af) 16%,transparent);color:var(--td-sc, #9ca3af);border:1px solid color-mix(in srgb,var(--td-sc, #9ca3af) 35%,transparent);white-space:nowrap}.td-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;animation:tdPulse 2s ease-in-out infinite}@keyframes tdPulse{0%,to{opacity:1}50%{opacity:.45}}.td-status-sub{font-size:10.5px;opacity:.8;margin-left:2px}.td-reason{font-size:12px;color:var(--color-text-muted);font-style:italic;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.td-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.td-title-block{padding:20px 20px 12px}.td-title{font-size:20px;font-weight:800;color:var(--color-text-strong);line-height:1.35;margin:0;cursor:default;display:flex;align-items:flex-start;gap:6px}.td-title.td-editable{cursor:pointer;border-radius:8px;padding:4px 6px;margin:-4px -6px;transition:background .15s}.td-title.td-editable:hover{background:var(--color-surface-hover)}.td-title.td-editable:hover .td-edit-hint{opacity:1}.td-edit-hint{opacity:0;color:var(--color-text-muted);transition:opacity .15s;flex-shrink:0;cursor:pointer}.td-edit-hint .td-icon-svg{width:14px;height:14px}.td-title-input{width:100%;font-size:18px;font-weight:700;padding:10px 12px;border:2px solid var(--color-primary);border-radius:10px;background:var(--color-input-bg);color:var(--color-text);resize:none;font-family:inherit;line-height:1.4;outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 15%,transparent)}.td-edit-actions{display:flex;gap:6px;margin-top:8px}.td-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 20px 16px}.td-meta-card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--color-surface-base) 60%,var(--color-bg-app) 40%);border:1px solid var(--color-border);transition:border-color .15s}.td-meta-card:hover{border-color:var(--color-border-strong)}.td-meta-full{grid-column:1 / -1}.td-meta-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.td-meta-icon .td-icon-svg{width:16px;height:16px}.td-meta-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.td-meta-label{font-size:10.5px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.6px;font-weight:600}.td-meta-value{font-size:13.5px;color:var(--color-text);line-height:1.35}.td-overdue{color:#ef4444!important;font-weight:600}[data-theme=light] .td-overdue{color:#991b1b!important}.td-assignee-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.td-assignee-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 2px;border-radius:14px;background:color-mix(in srgb,var(--color-surface-elevated) 50%,var(--color-bg-app) 50%);border:1px solid var(--color-border);font-size:12px;color:var(--color-text);white-space:nowrap}.td-assignee-ava{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.td-assignee-ava-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.td-desc-block{padding:16px 20px;border-top:1px solid var(--color-border)}.td-section-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.td-section-icon{color:var(--color-text-muted)}.td-section-icon .td-icon-svg{width:15px;height:15px}.td-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted)}.td-section-head .td-edit-hint{margin-left:auto}.td-desc-body{border-radius:8px;padding:4px 6px;margin:-4px -6px;transition:background .15s}.td-desc-body.td-editable{cursor:pointer}.td-desc-body.td-editable:hover{background:var(--color-surface-hover)}.td-desc-text{font-size:14px;line-height:1.65;color:var(--color-text-soft);white-space:pre-wrap;word-break:break-word;margin:0}.td-desc-placeholder{font-size:13px;color:var(--color-text-muted);font-style:italic}.td-desc-input{width:100%;font-family:inherit;font-size:14px;padding:10px 12px;border:2px solid var(--color-primary);border-radius:10px;background:var(--color-input-bg);color:var(--color-text);resize:vertical;line-height:1.6;outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 15%,transparent)}.td-tabs{display:flex;border-bottom:1px solid var(--color-border);padding:0 20px;position:sticky;top:0;z-index:5;background:var(--color-surface-elevated)}.td-tab{padding:11px 4px;margin-right:18px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--color-text-muted);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:color .18s,border-color .18s;margin-bottom:-1px;white-space:nowrap;display:flex;align-items:center;gap:5px}.td-tab-icon{display:flex}.td-tab-icon .td-icon-svg{width:14px;height:14px}.td-tab:hover:not(.active){color:var(--color-text-soft)}.td-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.td-tab-count{margin-left:2px;background:var(--color-surface-base);padding:1px 6px;border-radius:8px;font-size:11px;font-weight:700;color:var(--color-text-muted);font-family:SF Mono,Cascadia Code,Fira Code,monospace}.td-tab.active .td-tab-count{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary)}.td-tab-content{padding:16px 20px}.td-empty{padding:28px;text-align:center;color:var(--color-text-muted);font-size:13px;font-style:italic}.loading-small{text-align:center;color:var(--color-text-muted);font-size:.85rem;padding:1.5rem}.td-comments{display:flex;flex-direction:column;gap:16px}.td-comment{display:flex;gap:10px}.td-comment-ava{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.td-comment-ava-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.td-comment-body{flex:1;min-width:0}.td-comment-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.td-comment-author{font-size:13px;font-weight:700;color:var(--color-text)}.td-comment-time{font-size:11px;color:var(--color-text-muted);font-family:SF Mono,Cascadia Code,Fira Code,monospace}.td-comment-bubble{font-size:13.5px;color:var(--color-text-soft);line-height:1.55;white-space:pre-wrap;word-break:break-word;padding:8px 12px;background:color-mix(in srgb,var(--color-surface-base) 70%,var(--color-bg-app) 30%);border-radius:2px 12px 12px;border:1px solid var(--color-border)}.td-bottom-bar{flex-shrink:0;border-top:1px solid var(--color-border);background:var(--color-surface-elevated)}.td-compose{padding:10px 20px}.td-compose-inner{display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--color-surface-base) 65%,var(--color-bg-app) 35%);border:1px solid var(--color-border);border-radius:14px;padding:4px 4px 4px 14px;transition:border-color .18s,box-shadow .18s}.td-compose-inner:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 12%,transparent)}.td-compose-input{flex:1;border:none;background:transparent;color:var(--color-text);font-family:inherit;font-size:13.5px;resize:none;outline:none;min-height:20px;max-height:120px;line-height:1.4;padding:2px 0}.td-compose-input::placeholder{color:var(--color-text-muted)}.td-compose-send{width:30px;height:30px;border-radius:50%;border:none;background:var(--color-surface-base);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .18s,color .18s,transform .1s}.td-compose-send .td-icon-svg{width:16px;height:16px}.td-compose-send.active{background:var(--color-primary);color:#fff}.td-compose-send.active:hover{background:var(--color-primary-hover);transform:scale(1.06)}.td-compose-send:disabled{opacity:.35;cursor:not-allowed}.td-spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:tdSpin .6s linear infinite}@keyframes tdSpin{to{transform:rotate(360deg)}}.td-attachments{display:flex;flex-direction:column;gap:8px}.td-att-list{display:flex;flex-direction:column;gap:4px}.td-att-card{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface-base) 50%,var(--color-bg-app) 50%);cursor:pointer;transition:border-color .15s,background .15s}.td-att-card:hover{border-color:var(--color-border-strong);background:var(--color-surface-hover)}.td-att-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.td-att-icon .td-icon-svg{width:18px;height:18px}.td-att-info{min-width:0;flex:1}.td-att-name{display:block;font-size:13px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-att-size{display:block;font-size:11px;color:var(--color-text-muted);margin-top:1px}.td-att-dl{width:30px;height:30px;border-radius:8px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.td-att-dl .td-icon-svg{width:16px;height:16px}.td-att-dl:hover{background:var(--color-surface-base);color:var(--color-primary)}.td-att-upload{padding-top:8px}.td-att-upload-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;border:2px dashed var(--color-border-strong);border-radius:10px;background:transparent;color:var(--color-text-muted);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.td-att-upload-btn .td-icon-svg{width:15px;height:15px}.td-att-upload-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.td-att-upload-btn:disabled{opacity:.4;cursor:not-allowed}.td-att-preview{display:flex;flex-direction:column;gap:8px;flex:1}.td-att-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.td-att-preview-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;color:var(--color-text)}.td-att-preview-btns{display:flex;gap:4px;flex-shrink:0}.td-att-btn{width:30px;height:30px;border-radius:8px;border:none;background:var(--color-surface-base);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.td-att-btn .td-icon-svg{width:15px;height:15px}.td-att-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.td-att-preview-body{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-base);min-height:260px}.task-attachment-img{max-width:100%;max-height:100%;object-fit:contain}.task-attachment-pdf{width:100%;height:100%;min-height:380px;border:none}.task-attachment-video{max-width:100%;max-height:100%;border-radius:6px;outline:none}.task-attachment-text{width:100%;height:100%;min-height:260px;margin:0;padding:1rem;font-family:Courier New,Courier,monospace;font-size:12px;line-height:1.6;color:var(--color-text);background:transparent;overflow:auto;white-space:pre-wrap;word-break:break-all;box-sizing:border-box;align-self:stretch}@media(max-width:768px){.td-att-preview{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100vw - 32px);height:calc(100vh - 120px);max-width:500px;z-index:10000;background:var(--color-surface-base);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 12px 40px #00000059;padding:0;gap:0;display:flex;flex-direction:column;overflow:hidden}.td-att-preview:before{content:"";position:fixed;inset:0;background:#00000080;z-index:-1}.td-att-preview-head{padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface-base);flex-shrink:0;border-radius:14px 14px 0 0}.td-att-preview-name{font-size:12px}.td-att-btn{width:36px;height:36px;min-width:36px;min-height:36px}.td-att-preview-body{flex:1;border:none;border-radius:0 0 14px 14px;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}.task-attachment-img{width:100%;height:auto;object-fit:contain;touch-action:pinch-zoom pan-x pan-y}.task-attachment-pdf{min-height:100%;width:100%}.task-attachment-video{width:100%;height:auto}}.td-activity{display:flex;flex-direction:column;padding-left:4px}.td-activity-item{display:flex;gap:14px;padding:10px 0;position:relative}.td-activity-item:not(:last-child):before{content:"";position:absolute;left:5px;top:26px;bottom:-10px;width:2px;background:var(--color-border);border-radius:1px}.td-activity-dot{width:12px;height:12px;border-radius:50%;border:2px solid;flex-shrink:0;margin-top:3px}.td-activity-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.td-activity-text{font-size:13px;color:var(--color-text-soft);line-height:1.4}.td-activity-time{font-size:11px;color:var(--color-text-muted);font-family:SF Mono,Cascadia Code,Fira Code,monospace}.td-actions{display:flex;gap:8px;flex-wrap:wrap;padding:8px 20px 12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border)}.td-action-btn{padding:8px 16px;border-radius:8px;border:1px solid transparent;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .18s,transform .1s,background .15s;display:flex;align-items:center;gap:5px}.td-action-btn .td-icon-svg{width:14px;height:14px}.td-action-btn:hover{opacity:.88}.td-action-btn:active{transform:scale(.97)}.td-btn-accent{background:var(--color-primary);color:#fff}.td-btn-green{background:color-mix(in srgb,#10b981 15%,transparent);color:#10b981;border-color:color-mix(in srgb,#10b981 30%,transparent)}[data-theme=light] .td-btn-green{color:#065f46}.td-btn-green:hover{background:color-mix(in srgb,#10b981 25%,transparent)}.td-btn-red{background:color-mix(in srgb,#ef4444 15%,transparent);color:#ef4444;border-color:color-mix(in srgb,#ef4444 30%,transparent)}[data-theme=light] .td-btn-red{color:#991b1b}.td-btn-red:hover{background:color-mix(in srgb,#ef4444 25%,transparent)}.td-btn-amber{background:color-mix(in srgb,#f59e0b 15%,transparent);color:#f59e0b;border-color:color-mix(in srgb,#f59e0b 30%,transparent)}[data-theme=light] .td-btn-amber{color:#78350f}.td-btn-amber:hover{background:color-mix(in srgb,#f59e0b 25%,transparent)}.td-btn-delete{margin-left:auto;background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.td-btn-delete:hover{color:#ef4444;border-color:color-mix(in srgb,#ef4444 40%,transparent);background:color-mix(in srgb,#ef4444 8%,transparent)}.task-detail-close{width:32px;height:32px;border-radius:6px;border:none;background:var(--color-surface-base);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background .18s,color .18s;flex-shrink:0}.task-detail-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.modal-task-title{font-size:.95rem;font-weight:500;color:var(--color-text);margin:0 0 1rem;line-height:1.45}.tasks-transition-modal{max-width:420px;width:100%}.tasks-status-flow{display:flex;align-items:center;gap:10px;margin-bottom:1.25rem;flex-wrap:wrap}.tasks-status-pill{padding:5px 13px;border-radius:6px;font-size:.82rem;font-weight:500;white-space:nowrap;letter-spacing:.01em}.tasks-status-arrow{color:var(--color-text-muted);font-size:1.15rem;flex-shrink:0;line-height:1}.tasks-create-modal{max-width:580px;width:100%}.tasks-modal-title-wrap{display:flex;align-items:center;gap:10px}.tasks-modal-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary);font-size:1.3rem;font-weight:400;line-height:1;flex-shrink:0}.tasks-create-section{display:flex;flex-direction:column;gap:.85rem}.tasks-create-divider{height:1px;background:var(--color-border);margin:.5rem 0}.tasks-create-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;align-items:start}.tasks-create-row .form-label{min-height:2.4em}.tasks-create-row .form-field+.form-field{margin-top:0}.form-label-req{color:#ef4444;margin-left:2px}[data-theme=light] .form-label-req{color:#b91c1c}.form-label-hint{color:var(--color-text-muted);font-weight:400;font-size:.8rem}.tasks-assignee-list{display:flex;flex-wrap:wrap;gap:6px;max-height:130px;overflow-y:auto;padding:2px}.tasks-assignee-chip{display:flex;align-items:center;gap:7px;padding:5px 10px 5px 6px;border-radius:20px;border:1px solid var(--color-border);background:var(--color-surface-elevated);color:var(--color-text);font-size:.83rem;cursor:pointer;transition:border-color .15s,background .15s;white-space:nowrap}.tasks-assignee-chip:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-surface-elevated))}.tasks-assignee-chip.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.tasks-assignee-check{font-size:.8rem;font-weight:700;margin-left:2px;color:var(--color-primary)}.modal-card-lg{width:100%;max-width:560px}.notifications-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;margin-top:1rem}.notification-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .85rem;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .15s;background:var(--color-surface)}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--color-surface-raised, rgba(59, 130, 246, .04))}.notification-item.unread{background:var(--color-primary-faint, rgba(59, 130, 246, .05))}.notification-item-left{flex-shrink:0}.notification-dot{display:block;width:8px;height:8px;border-radius:50%;background:var(--color-border)}.notification-dot.active{background:var(--color-primary)}.notification-item-body{flex:1;min-width:0}.notification-item-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.1rem}.notification-type{font-size:.73rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-weight:600}.notification-time{font-size:.73rem;color:var(--color-text-secondary);margin-left:auto}.notification-title{font-size:.84rem;font-weight:500;color:var(--color-text);line-height:1.3}.notification-body{font-size:.76rem;color:var(--color-text-secondary);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-mark-btn{flex-shrink:0;padding:.2rem .45rem;border:1px solid var(--color-border);border-radius:4px;background:transparent;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;transition:background .15s,color .15s}.notification-mark-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;gap:1rem}.empty-state-icon{font-size:2.5rem}.empty-state-text{font-size:1rem;color:var(--color-text-secondary)}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;padding:1rem 1.25rem;border-top:1px solid var(--color-border)}.modal-foot .btn-ghost,.modal-foot .btn-primary{min-height:45px;height:45px;padding:10px 18px;border-radius:10px;font-size:.9rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.modal-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.btn-primary{height:45px;min-height:45px;padding:10px 18px;border-radius:10px;border:none;background:var(--color-primary);color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .18s;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.small{height:36px;min-height:36px;padding:6px 14px;font-size:.85rem}.btn-primary.btn-success{background:#10b981}.btn-primary.btn-success:hover{background:#0d9668}.btn-primary.btn-danger{background:#ef4444}.btn-primary.btn-danger:hover{background:#dc2626}.error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:.5rem .75rem;color:#ef4444;font-size:.85rem;margin:.5rem}[data-theme=light] .error-banner{color:#991b1b}.cselect{position:relative}.cselect-trigger{display:flex;align-items:center;gap:8px;padding:9px 12px;min-height:44px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-input-text);font-family:inherit;font-size:13px;cursor:pointer;transition:.18s cubic-bezier(.4,0,.2,1);white-space:nowrap;-webkit-user-select:none;user-select:none;width:100%;text-align:left;outline:none;-webkit-appearance:none;appearance:none;box-sizing:border-box;line-height:1.4}.cselect-trigger:hover{border-color:var(--color-border-strong);color:var(--color-text)}.cselect-trigger.open{border-color:var(--color-primary);color:var(--color-text);background:var(--color-surface-hover);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.cselect-trigger.has-value{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.cselect-trigger.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.cselect-trigger-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cselect-trigger-icon{font-size:13px;flex-shrink:0;width:18px;text-align:center}.cselect-trigger-label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis}.cselect-centered .cselect-trigger-label{text-align:center}.cselect-centered .cselect-menu-item{justify-content:center}.cselect-chevron{display:flex;align-items:center;transition:transform .2s ease;color:var(--color-text-muted);flex-shrink:0}.cselect-chevron svg{width:14px;height:14px}.cselect-trigger.open .cselect-chevron{transform:rotate(180deg);color:var(--color-primary)}.cselect-trigger.has-value .cselect-chevron{color:var(--color-primary)}.cselect-clear{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:10px;line-height:1;cursor:pointer;flex-shrink:0;transition:.18s cubic-bezier(.4,0,.2,1);border:none;font-family:inherit;padding:0}.cselect-clear:hover{background:var(--color-primary-hover);transform:scale(1.15)}.cselect-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:340px;background:var(--color-surface-popover);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 12px 48px #0000008c,0 0 0 1px #ffffff08 inset;z-index:200;padding:6px;animation:cselectDropIn .2s cubic-bezier(.16,1,.3,1);overflow:hidden}.cselect-menu.align-right{left:auto;right:0}@keyframes cselectDropIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.cselect-menu-header{padding:8px 10px 6px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--color-text-muted)}.cselect-group-label{padding:8px 10px 4px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted-2)}.cselect-menu-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;cursor:pointer;transition:.18s cubic-bezier(.4,0,.2,1);font-size:13.5px;color:var(--color-text-soft);border:none;background:none;width:100%;text-align:left;font-family:inherit}.cselect-menu-item:hover{background:var(--color-surface-elevated);color:var(--color-text)}.cselect-menu-item.active{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.cselect-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cselect-item-icon{display:flex;align-items:center;font-size:13px;flex-shrink:0;width:18px;justify-content:center}.cselect-item-label{flex:1}.cselect-item-check{width:16px;display:flex;align-items:center;justify-content:center;color:var(--color-primary);opacity:0;flex-shrink:0}.cselect-menu-item.active .cselect-item-check{opacity:1}.cselect-item-check svg{width:15px;height:15px}.cselect-menu-divider{height:1px;background:var(--color-border-weak);margin:4px 8px}.cr-mobile-back,.mobile-header{display:none}.app-layout.is-mobile .mobile-header{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;height:56px;min-height:56px;background:var(--color-surface-base);border-bottom:1px solid var(--color-border);flex-shrink:0;z-index:100;position:relative}.app-layout.is-mobile .mobile-header:before{content:"";position:absolute;top:calc(-1*env(safe-area-inset-top,0px));left:0;right:0;height:env(safe-area-inset-top,0px);background:var(--color-surface-base)}body.chat-open .mobile-header,body.chat-open .mobile-bottom-bar,body.supply-modal-open .mobile-header,body.supply-modal-open .mobile-bottom-bar,body.task-detail-open .mobile-header,body.task-detail-open .mobile-bottom-bar{display:none!important}body.chat-open{overflow:hidden!important;position:fixed!important;width:100%!important;height:100%!important}body.chat-open .app-main{padding:0!important;height:100%!important;overflow:hidden!important}.mobile-header-btn{width:44px;height:44px;min-width:44px;border:none;background:transparent;color:var(--color-text);display:flex;align-items:center;justify-content:center;border-radius:10px;cursor:pointer}.mobile-header-btn:active{background:var(--color-surface-hover)}.mobile-header-btn svg{width:22px;height:22px}.mobile-header-title{flex:1;font-size:1.05rem;font-weight:600;color:var(--color-text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-header-right{flex-shrink:0;display:flex;align-items:center}.is-mobile .theme-switcher{padding:.15rem .4rem;gap:.3rem;background:transparent;border:none}.is-mobile .theme-switcher select{font-size:.7rem;padding:.1rem .25rem;border-radius:6px}.is-mobile .theme-switcher .theme-icon-animated,.is-mobile .theme-switcher .theme-icon-animated .theme-glyph{width:.85rem;height:.85rem}.mobile-drawer-overlay{position:fixed;inset:0;z-index:200;background:#0000008c;animation:drawerFadeIn .2s ease}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}.mobile-drawer{position:absolute;top:0;left:0;bottom:0;width:min(300px,85vw);background:var(--color-surface-base);display:flex;flex-direction:column;animation:drawerSlideIn .25s cubic-bezier(.32,.72,0,1);box-shadow:4px 0 24px #0000004d}@keyframes drawerSlideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-bottom:1px solid var(--color-border)}.mobile-drawer-header .sidebar-header{flex:1}.mobile-drawer-close{width:36px;height:36px;min-width:36px;border:none;background:transparent;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer}.mobile-drawer-close:active{background:var(--color-surface-hover)}.mobile-drawer-close svg{width:20px;height:20px}.mobile-drawer-nav{flex:1;overflow-y:auto;padding:.5rem .6rem;display:flex;flex-direction:column;gap:.2rem}.mobile-drawer-nav .sidebar-link{padding:.7rem .75rem;font-size:.92rem;border-radius:10px}.mobile-drawer-nav .sidebar-link .nav-icon{width:1.15rem;height:1.15rem}.mobile-drawer-footer{border-top:1px solid var(--color-border);padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.mobile-drawer-user{display:flex;align-items:center;gap:.65rem;padding:.5rem;border-radius:10px;cursor:pointer}.mobile-drawer-user:active{background:var(--color-surface-hover)}.user-role-label{font-size:.75rem;color:var(--color-text-muted-2)}.mobile-drawer-logout{width:100%;padding:.6rem;border:1px solid var(--color-border);border-radius:10px;background:transparent;color:var(--color-text-muted-2);font-size:.85rem;font-family:inherit;cursor:pointer;text-align:center}.mobile-drawer-logout:active{background:var(--color-surface-hover);color:var(--color-text)}.mobile-bottom-bar{display:none}.app-layout.is-mobile .mobile-bottom-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:90;height:calc(60px + env(safe-area-inset-bottom,0px));min-height:calc(60px + env(safe-area-inset-bottom,0px));background:var(--color-surface-base);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;text-decoration:none;color:var(--color-text-muted-2);font-size:.68rem;padding:.35rem 0;position:relative;-webkit-tap-highlight-color:transparent}.bottom-tab.active{color:var(--color-primary)}.bottom-tab-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center}.bottom-tab-icon{width:22px;height:22px}.bottom-tab-badge{position:absolute;top:-4px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.bottom-tab-label{font-weight:500;letter-spacing:.01em}@media(max-width:768px){.app-layout.is-mobile{flex-direction:column;--sidebar-width: 0px;height:100dvh;max-height:100dvh;overflow:hidden;position:fixed;inset:0;padding-top:env(safe-area-inset-top,0px)}.app-layout.is-mobile .main-sidebar,.app-layout.is-mobile .sidebar-resizer{display:none}.app-layout.is-mobile .app-main{padding:.65rem .75rem;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex:1;min-height:0;background:var(--color-surface-base)}.app-layout.is-mobile .main-topbar{display:none}h2{font-size:1.15rem}h3{font-size:1rem}.card{padding:.75rem;border-radius:10px}.btn-primary,.btn-ghost,.btn-transition{min-height:44px;padding-left:1rem;padding-right:1rem;font-size:.88rem}.btn-ghost.small{min-height:44px}input,textarea,select{font-size:16px!important;min-height:44px}input[type=text],input[type=password],input[type=email],input[type=search],input[type=number],input[type=date],input[type=datetime-local],input[type=tel],input[type=url],textarea,select{min-height:44px}.modal-backdrop,.modal-overlay{align-items:flex-start;justify-content:center;padding:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-card{width:100%!important;max-width:100%!important;min-width:0!important;max-height:none;border-radius:0;margin:0;box-sizing:border-box;overflow:hidden}.modal-card .form-grid{grid-template-columns:1fr}.modal-card *,.modal-card *:before,.modal-card *:after{box-sizing:border-box}.modal-card input,.modal-card textarea,.modal-card select{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;font-size:16px}.modal-card input[type=datetime-local],.modal-card input[type=date],.modal-card input[type=time]{-webkit-appearance:none;appearance:none;width:100%!important;max-width:100%!important;min-width:0!important}.modal-card .form-grid,.modal-card .form-grid label,.modal-card .modal-body,.modal-card .form-field{min-width:0;max-width:100%}.modal-head{padding:.75rem 1rem;flex-direction:row-reverse;align-items:center;gap:.75rem;border-bottom:1px solid var(--color-border);margin-bottom:0;min-height:52px}.modal-head h3{flex:1;margin:0;font-size:1.05rem}.modal-head>button:last-child,.modal-head>button.btn-ghost{order:-1;font-size:0;width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;padding:0}.modal-head>button:last-child:before,.modal-head>button.btn-ghost:before{content:"←";font-size:1.3rem;line-height:1}.modal-card .form-actions{padding:.75rem 1rem;border-top:1px solid var(--color-border)}.table-responsive,.table-wrapper{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.table-responsive table,.table-wrapper table{display:table}.app-main table:not(.table-wrapper table):not(.table-responsive table){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:calc(100vw - 1.5rem)}.objects-header{flex-direction:column;align-items:stretch;gap:.5rem}.objects-header-actions{display:flex;gap:.5rem}.objects-filters-row{flex-direction:column;align-items:stretch;gap:.5rem}.objects-grid{grid-template-columns:1fr;gap:.65rem}.object-card{padding:.85rem}.obj-detail-grid{grid-template-columns:1fr!important}.obj-detail-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:0}.obj-detail-tabs a,.obj-detail-tabs button{white-space:nowrap;flex-shrink:0;min-height:40px;padding:.5rem .85rem}.techcards-grid{grid-template-columns:1fr}.tc-detail-grid{grid-template-columns:1fr!important}.alloc-layout{grid-template-columns:1fr}.supply-toolbar,.alloc-toolbar{flex-wrap:wrap;gap:.5rem}.supply-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;max-width:100%;scrollbar-width:none}.supply-tabs::-webkit-scrollbar{display:none}.supply-tabs a,.supply-tabs button{white-space:nowrap;flex-shrink:0;min-height:44px}.tasks-root{flex-direction:column;flex:1;min-height:0;overflow:hidden}.tasks-toolbar{padding:10px 12px;gap:8px}.tasks-toolbar-top{gap:6px;flex-wrap:wrap}.tasks-tabs{flex-shrink:1;min-width:0;overflow-x:auto}.tasks-tab{padding:10px 16px;font-size:13px;min-height:44px}.tasks-filter-toggle{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;border:1px solid var(--color-border-strong);background:var(--color-surface-base);color:var(--color-text-muted);font-size:13px;font-family:inherit;cursor:pointer;flex-shrink:0;min-height:44px;transition:all .18s;position:relative}.tasks-filter-toggle:hover{border-color:var(--color-text-muted)}.tasks-filter-toggle.has-filter{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.tasks-filter-badge{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--color-primary)}.tasks-view-btn{min-width:44px;min-height:44px;padding:10px;justify-content:center}.tasks-filters-row{display:none;flex-direction:column;gap:6px}.tasks-filters-row.open{display:flex}.tasks-filters-row>*{width:100%}.tasks-toolbar-search-row{width:100%}.tasks-search-wrap{flex:1;min-width:0}.tasks-search{width:100%!important;font-size:16px;min-height:44px}.tasks-search:focus{width:100%!important}.tasks-btn-new{min-height:44px;padding:0 12px;font-size:13px}.tasks-btn-new .tasks-btn-new-text-long{display:none}.task-row{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;position:relative}.task-row-priority{position:absolute;top:0;left:0;width:4px;height:100%;border-radius:4px 0 0 4px}.task-row-main{padding-left:8px;min-width:0}.task-row-title{font-size:14px;line-height:1.35;white-space:normal;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:1px}.task-row-bottom{display:flex;align-items:center;padding-left:8px}.task-row-assignees{display:flex;padding-left:0;width:auto;flex-shrink:0}.task-row-right{display:flex;align-items:center;justify-content:flex-end;flex:1;width:auto;gap:8px;padding-left:0}.task-row-assignees .task-avatar{width:24px;height:24px;font-size:9px}.tasks-kanban{flex-direction:column;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.5rem;flex:1;min-height:0;gap:8px}.kanban-column{min-width:0;max-width:100%;width:100%;max-height:none;border-radius:12px}.kanban-column-body{max-height:none;overflow-y:visible}.kanban-column-empty{display:none}.kanban-card-title{font-size:13px}.td-panel{position:fixed;inset:0;width:100%;z-index:150;border-left:none;border-radius:0;overflow:hidden}.chats-layout{flex-direction:column}.chats-sidebar{width:100%!important;max-width:100%;border-right:none;border-bottom:1px solid var(--color-border)}.chats-main{min-height:60vh}.chat-input-row{padding:.5rem}.chat-input-row textarea{min-height:40px}.reports-header,.reports-toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.report-calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;font-size:.7rem}.users-header{flex-direction:column;align-items:stretch;gap:.5rem}.users-grid{grid-template-columns:1fr}.user-detail-grid,.profile-grid{grid-template-columns:1fr!important}.profile-form-section{padding:.75rem}.login-page{align-items:center;justify-content:center;padding:1rem;min-height:100dvh}.login-card{width:100%;max-width:380px;padding:1.5rem 1.25rem;border-radius:16px}.logs-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.notifications-list{gap:.5rem}.notification-item{padding:.75rem}.search-input,.search-input input{width:100%}.breadcrumb,.sub-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;white-space:nowrap;padding-bottom:.25rem}.breadcrumb a,.breadcrumb span,.sub-nav a{flex-shrink:0}.filter-dropdown{position:fixed!important;left:.5rem!important;right:.5rem!important;top:auto!important;bottom:72px!important;max-height:50vh;width:auto!important}.form-row,.inline-form,.form-grid-2col{grid-template-columns:1fr}.desktop-only{display:none!important}.checklist-item{padding:.65rem}.checklist-item input[type=checkbox]{width:22px;height:22px;min-width:22px}.supports-table,.trenches-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.planned-works-grid{grid-template-columns:1fr!important}.elements-grid,.equipment-grid,.orders-grid,.requests-grid,.counterparties-grid{grid-template-columns:1fr}.movements-list{gap:.5rem}.movement-card{padding:.75rem}.material-detail-grid{grid-template-columns:1fr!important}.tabs-row,.tab-bar,.status-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.tabs-row>*,.tab-bar>*,.status-tabs>*{flex-shrink:0}.odp{gap:.65rem}.odp-breadcrumb{overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;padding-bottom:.2rem}.odp-hero{flex-direction:column;padding:.85rem}.odp-hero-content{flex-direction:column;gap:.5rem}.odp-hero-right{width:100%;text-align:left}.odp-hero-actions{flex-wrap:wrap;gap:.5rem}.odp-hero-actions .odp-btn{flex:1;min-width:0;text-align:center}.odp-stats-bar{flex-wrap:wrap;gap:.5rem}.odp-stat{flex:1 1 45%;min-width:100px}.odp-sections-grid{grid-template-columns:1fr;gap:.5rem}.odp-section-card{padding:.75rem}.odp-bottom{grid-template-columns:1fr!important;gap:.65rem}.odp-info-card,.odp-reports-card{padding:.75rem}.odp-elements-grid{grid-template-columns:repeat(2,1fr)!important;gap:.35rem}.odp-report-item{padding:.6rem;flex-direction:column;gap:.4rem}.cr{flex-direction:column;height:calc(100dvh - 116px)}.cr-sidebar{width:100%!important;max-width:100%;border-right:none;border-bottom:1px solid var(--color-border);max-height:none}.cr-body .cr-sidebar{display:flex}.cr-body .cr-main,.cr-body.has-selected .cr-sidebar{display:none}.cr-body.has-selected .cr-main{display:flex}.cr-main{flex:1;min-height:0}.cr-header{padding:.65rem .75rem}.cr-header-top{flex-wrap:wrap;gap:.5rem}.cr-compose{padding:.5rem}.cr-compose-form{gap:6px;align-items:flex-end}.cr-input{min-height:44px;font-size:16px;padding:11px 14px;line-height:20px;box-sizing:border-box}.cr-info{position:fixed;inset:0;width:100%;z-index:160;border-left:none}.cr-chat-header{padding:.5rem .65rem}.cr-mobile-back{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:36px;border:none;background:transparent;color:var(--color-text);border-radius:8px;cursor:pointer;margin-right:.25rem}.cr-mobile-back:active{background:var(--color-surface-hover)}.cr-bubble{max-width:90%}.cr-ctx-menu{position:fixed;bottom:72px;left:.5rem;right:.5rem;top:auto}.supply-page{gap:.65rem}.supply-header{flex-direction:column;align-items:stretch;gap:.5rem}.supply-header-title-row{flex-wrap:wrap;gap:.5rem}.supply-primary-nav{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;width:100%}.supply-primary-nav>*{text-align:center;white-space:nowrap}.supply-actions{flex-wrap:wrap;gap:.4rem}.supply-layout{flex-direction:column}.supply-sidebar{width:100%!important;max-width:100%;border-right:none;border-bottom:1px solid var(--color-border)}.supply-main{min-width:0}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.tbl{min-width:500px}.warehouse-filters{flex-direction:row;align-items:center;gap:.4rem;width:100%;max-width:100%;overflow:hidden}.warehouse-filters .search-input{flex:1;min-width:0}.warehouse-filters .search-input input{min-width:0;width:100%;height:36px;min-height:36px;max-height:36px;padding:.25rem .65rem;font-size:.8rem;box-sizing:border-box}.warehouse-filters .cselect{flex-shrink:0;width:110px;max-width:110px;font-size:.75rem}.warehouse-filters .cselect-trigger{padding:.3rem .5rem;min-height:36px}.warehouse-action-btn{min-height:44px;min-width:44px}.supply-allocation-tabs{display:flex;flex-wrap:wrap;max-width:100%;gap:.3rem}.supply-allocation-tabs>*{flex-shrink:1;min-width:0;white-space:nowrap}.supply-allocation-head-actions{flex-wrap:wrap;gap:.5rem;max-width:100%}.profile-page{gap:.65rem}.profile-hero{padding:.75rem}.profile-hero-inner{flex-direction:column;gap:.75rem}.profile-hero-left{flex-direction:column;align-items:center;text-align:center}.profile-hero-right{width:100%;display:flex;gap:.75rem;justify-content:center}.profile-body{flex-direction:column;gap:.65rem}.profile-sidebar{width:100%!important;max-width:100%}.profile-main{width:100%}.profile-form,.profile-form-full{grid-template-columns:1fr!important}.profile-theme-cards{grid-template-columns:repeat(3,1fr);gap:.5rem}.profile-account-row{flex-direction:column;gap:.25rem}.phone-input-inline{flex-direction:column;gap:.35rem}.tasks-main{gap:.5rem}.tasks-stats-bar{flex-wrap:wrap;gap:.35rem;padding:0 4px}.tasks-stat-chip{padding:5px 10px;font-size:12px}.td-topbar{padding:14px 16px}.td-bottom-bar{box-shadow:0 -2px 8px #0000001a}.td-compose{padding:8px 16px}.td-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 16px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.td-action-btn{min-height:44px;min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:10px 12px;justify-content:center}.td-action-btn:only-child{grid-column:1 / -1}.td-btn-delete{margin-left:0}.td-meta-grid{grid-template-columns:1fr!important;gap:6px}.td-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.td-tabs>*{flex-shrink:0;white-space:nowrap;min-height:44px}.tasks-create-modal{width:100%!important;max-width:100%!important;border-radius:0!important;height:100dvh;max-height:100dvh;display:flex;flex-direction:column}.tasks-create-modal .modal-body{-webkit-overflow-scrolling:touch;padding-bottom:1.5rem}.tasks-create-modal .modal-foot{padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}.tasks-create-row{grid-template-columns:1fr!important;gap:.5rem}.td-compose-input{font-size:16px;min-height:22px}.td-compose-send{width:36px;height:36px}.tasks-transition-modal{width:100%!important;max-width:100%!important}.tasks-assignee-chip{min-height:44px}.td-close{min-width:44px;min-height:44px;border-radius:10px}.td-close .td-icon-svg{display:none}.td-close:before{content:"←";font-size:1.3rem;line-height:1}.form-input{min-height:44px;font-size:16px}.supply-page .card-header-row{flex-wrap:wrap;gap:.5rem;overflow:hidden}.supply-page .card-header-row .warehouse-filters{flex-basis:100%}.supply-actions-inline{flex-wrap:wrap;gap:.35rem}.cselect-menu{max-width:calc(100vw - 1.5rem)}.avatar-modal-card{width:100%!important;max-width:100%!important}.avatar-editor-layout{flex-direction:column}.avatar-editor-canvas-wrap{max-width:100%;max-height:50vh}.supply-page,.card{min-width:0}.supply-primary-nav{max-width:none}.form-actions button,.history-filter-actions button{min-height:44px}.history-icon-btn{width:44px;height:44px}.alloc-mode-btn{min-height:44px;padding:10px 16px}.alloc-btn-nav,.profile-password-button{min-height:44px}.modal-head .btn-ghost.small{width:44px;height:44px}.mobile-drawer-close{width:44px;height:44px;min-width:44px}.mobile-drawer-nav .sidebar-link,.mobile-drawer-logout{min-height:44px}.btn-ghost.small:not(:has(span)):not(:has(div)){min-width:44px;text-align:center}.warehouse-filters .btn-ghost{min-height:44px}.alloc-entity-qty-label,.alloc-unit,.task-row-initials,.tc-card-stat,.tc-count,.ntf-pill,.chat-time,.chat-last-msg,.object-card-badge,.profile-role{font-size:max(var(--_fs, 12px),12px)!important}.calendar-day-btn,.fc-daygrid-day,.cal-day{min-width:44px;min-height:44px}.tc-btn-create{min-height:44px;padding:10px 20px}.owp-back,.oelp-back,.osp-back,.otp-back,.oclp-back{display:inline-flex;align-items:center;gap:.3rem;min-height:44px;padding:.5rem 0;font-size:.88rem;color:var(--color-link);text-decoration:none}.owp-back svg,.oelp-back svg,.osp-back svg,.otp-back svg,.oclp-back svg{width:16px;height:16px;flex-shrink:0}.owp-filter-btn{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--color-border-strong);border-radius:10px;background:var(--color-surface-base);color:var(--color-text-muted);font-size:.85rem;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.owp-filter-btn.active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.owp-filter-group{display:flex;flex-wrap:wrap;gap:.35rem}.owp-filters{display:flex;flex-direction:column;gap:.5rem}.oclp-header-actions{display:flex;flex-wrap:wrap;gap:.35rem}.oclp-template-btn,.oclp-export-btn,.oclp-add-btn{display:inline-flex;align-items:center;gap:.3rem;min-height:44px;padding:8px 14px;border:1px solid var(--color-border-strong);border-radius:10px;background:var(--color-surface-base);color:var(--color-text);font-size:.85rem;cursor:pointer;white-space:nowrap}.oclp-add-btn{border-color:var(--color-primary);color:var(--color-primary)}.osp-filter-btn{display:inline-flex;align-items:center;gap:.3rem;min-height:44px;padding:8px 14px;border:1px solid var(--color-border-strong);border-radius:10px;background:var(--color-surface-base);color:var(--color-text-muted);font-size:.85rem;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.osp-filter-btn.active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.osp-filters{display:flex;flex-wrap:wrap;gap:.35rem}.osp-add-btn{display:inline-flex;align-items:center;gap:.3rem;min-height:44px;padding:8px 16px;border:1px solid var(--color-primary);border-radius:10px;background:var(--color-primary);color:#fff;font-size:.85rem;cursor:pointer}.otp-add-btn{display:inline-flex;align-items:center;gap:.3rem;min-height:44px;padding:8px 16px}.oelp-add-btn,.oelp-action-btn{min-height:44px;min-width:44px}.odp-breadcrumb a{min-height:44px;display:inline-flex;align-items:center}.osp-table-actions button,.osp-card-actions button{min-height:44px;padding:8px 14px}.supply-desktop-only{display:none!important}.supply-mobile-only{display:flex!important}button.supply-mobile-only{display:inline-flex!important;align-items:center;justify-content:center}.supply-primary-btn{min-height:44px;padding:.5rem .85rem;font-size:.85rem}.supply-mini-row{min-height:44px;padding:.55rem .65rem}.supply-mini-row .title{font-size:.9rem}.supply-mini-row .meta{font-size:.82rem}.supply-mini-row .qty{font-size:.85rem}.form-grid label{font-size:.88rem}.tbl th{font-size:.82rem}.tbl td{font-size:.85rem}.tbl th,.tbl td{padding:.5rem}.movement-draft-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.supply-receipt-form .form-grid{grid-template-columns:1fr}.supply-insights-row{flex-direction:column;gap:.5rem}.alloc-entity-row{min-height:44px;padding:.5rem .65rem}.edit-log-badge{min-height:28px;padding:.15rem .55rem;font-size:.75rem}.movement-batch-modal .modal-card{width:100%!important;max-width:100%!important}.autocomplete-dropdown{max-width:calc(100vw - 2rem)}.autocomplete-dropdown li{min-height:44px;display:flex;align-items:center;padding:.5rem .75rem}.status-pill{font-size:.75rem;padding:.2rem .55rem}.movement-batch-tag{font-size:.8rem}.supply-header-right{flex-wrap:wrap;gap:.4rem}.history-file-btn{min-height:44px;min-width:44px}}@media(hover:none){.sidebar-link:hover{background:transparent;color:var(--color-text-muted)}.sidebar-link.active:hover{background:var(--gradient-primary, var(--color-primary-strong));color:#fff}.object-card:hover{border-color:var(--color-border);box-shadow:var(--shadow-elevated)}.btn-ghost:hover,.btn-primary:hover,.user-menu-trigger:hover,.user-menu-item:hover{background:transparent}.supply-mini-row:hover{background:var(--color-surface-base)}.supply-mini-row.active:hover{background:var(--color-surface-hover)}.warehouse-action-btn:hover{color:var(--color-text-muted);border-color:var(--color-border);background:var(--color-surface-base)}.history-icon-btn:hover:not(:disabled){color:var(--color-text-muted);border-color:var(--color-border);background:var(--color-surface-base)}.alloc-entity-row:hover{background:var(--color-surface-base)}.swp-card:hover,.smh-card:hover{border-color:var(--color-border);box-shadow:none}}@supports (padding: env(safe-area-inset-top,0px)){.app-layout.is-mobile .mobile-header{padding-top:calc(env(safe-area-inset-top,0px)*.55);height:calc(48px + env(safe-area-inset-top,0px)*.55);min-height:calc(48px + env(safe-area-inset-top,0px)*.55)}.mobile-drawer-header{padding-top:calc(.5rem + env(safe-area-inset-top,0px)*.55)}.mobile-drawer .sidebar-nav{padding-bottom:env(safe-area-inset-bottom,0px)}.app-layout.is-mobile .mobile-bottom-bar{height:calc(56px + env(safe-area-inset-bottom,0px)/2);min-height:calc(56px + env(safe-area-inset-bottom,0px)/2);padding-bottom:calc(env(safe-area-inset-bottom,0px)/2)}.td-panel{top:env(safe-area-inset-top,0px)}}@media(min-width:769px)and (max-width:1024px){.objects-grid,.techcards-grid{grid-template-columns:repeat(2,1fr)}.app-main{padding:.75rem 1rem}.td-panel{width:380px}}@keyframes globalCallSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes globalCallPulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.35);opacity:0}}@keyframes globalCallRing{0%,to{transform:rotate(0)}10%{transform:rotate(12deg)}20%{transform:rotate(-12deg)}30%{transform:rotate(8deg)}40%{transform:rotate(-8deg)}50%{transform:rotate(0)}}.global-call-overlay{position:fixed;top:0;left:0;right:0;z-index:10000;display:flex;justify-content:center;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));pointer-events:none}.global-call-card{pointer-events:auto;display:flex;align-items:center;gap:.85rem;padding:.85rem 1.25rem;background:linear-gradient(135deg,#1e1e28f7,#14141efa);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 8px 32px #0006,0 0 60px #22c55e26;animation:globalCallSlideIn .3s ease-out;max-width:480px;width:100%;position:relative;overflow:hidden}.global-call-pulse-ring{position:absolute;left:20px;top:50%;width:52px;height:52px;margin-top:-26px;border-radius:50%;background:#22c55e4d;animation:globalCallPulse 1.5s ease-in-out infinite;pointer-events:none}.global-call-icon{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#22c55e,#16a34a);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;animation:globalCallRing 1.5s ease-in-out infinite;position:relative;z-index:1}.global-call-info{flex:1;min-width:0}.global-call-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#22c55e}.global-call-caller{font-size:1rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-call-actions{display:flex;gap:.5rem;flex-shrink:0}.global-call-btn{width:44px;height:44px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease}.global-call-btn.accept{background:#22c55e;color:#fff;box-shadow:0 0 16px #22c55e66}.global-call-btn.accept:hover,.global-call-btn.accept:active{background:#16a34a;transform:scale(1.08)}.global-call-btn.reject{background:#ef4444;color:#fff;box-shadow:0 0 16px #ef44444d}.global-call-btn.reject:hover,.global-call-btn.reject:active{background:#dc2626;transform:scale(1.08)}@media(max-width:768px){.global-call-overlay{padding:.5rem;padding-top:calc(.5rem + env(safe-area-inset-top,0px))}.global-call-card{max-width:100%;padding:.75rem 1rem;gap:.65rem}.global-call-btn{width:48px;height:48px}}.call-full{position:absolute;inset:0;z-index:100;background:linear-gradient(160deg,#1a1a2e,#16213e,#0f3460);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.layout-chats .call-full{left:320px}@media(max-width:860px){.layout-chats .call-full{left:0}}.call-full-remote{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.call-full-local{position:absolute;bottom:100px;right:20px;width:180px;height:135px;border-radius:12px;object-fit:cover;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 20px #0006;z-index:5}.call-full-center{display:flex;flex-direction:column;align-items:center;gap:12px;z-index:2;position:relative}.call-full-avatar{width:96px;height:96px;border-radius:24px;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#fff;overflow:hidden}.call-full-avatar img{width:100%;height:100%;object-fit:cover}.call-full-name{font-size:1.25rem;font-weight:600;color:#fff}.call-full-status{font-size:.875rem;color:#fff9;font-variant-numeric:tabular-nums}.call-full-pulse{width:96px;height:96px;position:absolute;top:0;border-radius:24px;background:#22c55e40;animation:callPulseAnim 1.8s ease-in-out infinite;pointer-events:none}@keyframes callPulseAnim{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.4);opacity:0}}.call-full-topbar{position:absolute;top:0;left:0;right:0;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(to bottom,rgba(0,0,0,.5),transparent);z-index:4}.call-full-topbar-name{font-size:.9rem;font-weight:600;color:#fff}.call-full-topbar-time{font-size:.85rem;color:#ffffffb3;font-variant-numeric:tabular-nums}.call-full-controls{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:16px;padding:24px 20px 32px;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);z-index:10;transition:opacity .25s ease}@media(min-width:769px){.call-full-controls{opacity:0}.call-full:hover .call-full-controls{opacity:1}}.call-ctrl-btn{width:48px;height:48px;border-radius:50%;border:none;background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.call-ctrl-btn:hover{background:#ffffff40;transform:scale(1.08)}.call-ctrl-btn.off{background:#ef44444d;color:#fca5a5}.call-ctrl-btn.off:hover{background:#ef444473}.call-ctrl-btn.accept{background:#22c55e;box-shadow:0 0 16px #22c55e66}.call-ctrl-btn.accept:hover{background:#16a34a}.call-ctrl-btn.end{background:#ef4444;box-shadow:0 0 12px #ef44444d}.call-ctrl-btn.end:hover{background:#dc2626}.call-ctrl-btn.minimize{background:#ffffff1a}.call-ctrl-btn.minimize:hover{background:#fff3}.call-pip{position:fixed;bottom:24px;right:24px;width:280px;border-radius:16px;overflow:hidden;background:#1a1a2e;box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff14;z-index:1000;transition:box-shadow .2s ease;animation:callPipSlideIn .3s ease-out;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.call-pip:active{cursor:grabbing}@keyframes callPipSlideIn{0%{transform:translateY(20px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.call-pip:hover{box-shadow:0 12px 40px #0009,0 0 0 1px #ffffff1f}.call-pip-content{position:relative;cursor:pointer}.call-pip-video{width:100%;height:158px;object-fit:cover;display:block}.call-pip-avatar{width:100%;height:158px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#1a1a2e,#16213e)}.call-pip-avatar img{width:64px;height:64px;border-radius:16px;object-fit:cover}.call-pip-avatar span{font-size:24px;font-weight:700;color:#ffffffb3;width:64px;height:64px;border-radius:16px;background:#ffffff1a;display:flex;align-items:center;justify-content:center}.call-pip-expand{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:8px;background:#00000080;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease,background .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.call-pip:hover .call-pip-expand{opacity:1}.call-pip-expand:hover{background:#fff3}.call-pip-bar{padding:10px 14px;display:flex;justify-content:space-between;align-items:center}.call-pip-name{font-size:.8rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.call-pip-time{font-size:.75rem;color:#ffffff80;font-variant-numeric:tabular-nums}.call-pip-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 14px;background:#0000004d}.call-pip-controls .call-ctrl-btn{width:40px;height:40px}@media(max-width:768px){.call-full{position:fixed;inset:0;z-index:9999}.call-full-local{width:120px;height:90px;bottom:120px;right:12px}.call-full-controls{opacity:1!important;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.call-pip{bottom:calc(68px + env(safe-area-inset-bottom,0px));right:12px;width:200px}.call-pip-video,.call-pip-avatar{height:112px}.call-pip-expand{opacity:1}.call-ctrl-btn.minimize{display:none}}
