:root{--gold: #c49716;--gold-strong: #a37b12;--gold-soft: #fff8e1;--bg: #ffffff;--surface: #ffffff;--surface-2: #f6f7f9;--border: #ebebeb;--text: #1c1f34;--muted: #6c757d;--dark: #3a3a3a;--shadow: 0 1px 2px rgba(28, 31, 52, .04), 0 4px 16px rgba(28, 31, 52, .06);--radius: 12px;--green: #3cae5c;--green-soft: #e8f6ec;--red: #ea2f2f;--red-soft: #ffe5e5;--orange: #a37b12;--orange-soft: #fff3cd;--blue: #00968a;--blue-soft: #e0f3f1;--neutral-soft: #f1f2f4;--sidebar-w: 224px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1{font-size:1.45rem;margin:0;line-height:1.2}h2{font-size:1.05rem;margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}.spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,opacity .15s}.btn:hover:not(:disabled){border-color:var(--gold)}.btn:disabled{opacity:.55;cursor:default}.btn-sm{min-height:32px;padding:5px 10px;font-size:.85rem}.btn-block{width:100%}.btn-primary{background:var(--gold);border-color:var(--gold);color:#fff}.btn-primary:hover:not(:disabled){background:var(--gold-strong);border-color:var(--gold-strong)}.btn-success{background:var(--green);border-color:var(--green);color:#fff}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger-ghost{color:var(--red);border-color:transparent;background:transparent}.btn-danger-ghost:hover:not(:disabled){background:var(--red-soft);border-color:transparent}.btn-ghost{background:transparent;border-color:transparent}.btn-active{border-color:var(--gold);background:var(--gold-soft)}.count{background:var(--gold);color:#fff;border-radius:99px;padding:0 7px;font-size:.75rem}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:0;background:transparent;color:inherit;cursor:pointer}.icon-btn:hover{background:var(--neutral-soft)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--gold-soft);border-top-color:var(--gold);animation:spin .8s linear infinite;display:inline-block}.btn-primary .spinner{border-color:#fff6;border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;justify-content:center;padding:60px 0}.loading .spinner{position:relative;width:50px;height:50px;border:0;border-radius:0;animation:chase-rotate 2s linear infinite}.loading .spinner:before,.loading .spinner:after{content:"";position:absolute;left:20%;width:60%;height:60%;border-radius:50%;animation:chase-bounce 2s ease-in-out infinite}.loading .spinner:before{top:0;background:var(--dark)}.loading .spinner:after{bottom:0;background:var(--gold);animation-delay:-1s}@keyframes chase-rotate{to{transform:rotate(360deg)}}@keyframes chase-bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.loading .spinner,.loading .spinner:before,.loading .spinner:after{animation-duration:4s}}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.label{font-size:.85rem;font-weight:600}.req{color:var(--red)}.input{width:100%;min-height:40px;padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:.95rem}textarea.input{resize:vertical}.input:focus{outline:2px solid var(--gold-soft);border-color:var(--gold)}.input:disabled{opacity:.7}.has-error .input{border-color:var(--red)}.help{color:var(--muted);font-size:.8rem}.error{color:var(--red);font-size:.82rem}.input-group{position:relative}.input-group .input{padding-right:44px}.input-group .icon-btn{position:absolute;right:2px;top:2px}.readonly{padding:6px 0;min-height:40px;display:flex;flex-direction:column;justify-content:center}.readonly-row{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.switch{display:flex;align-items:center;gap:10px;cursor:pointer;min-height:40px}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{width:40px;height:24px;border-radius:99px;background:var(--border);position:relative;flex-shrink:0;transition:background .15s}.switch-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .15s}.switch input:checked+.switch-track{background:var(--gold)}.switch input:checked+.switch-track .switch-thumb{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--gold);outline-offset:2px}.field-bool{justify-content:flex-end}.multi{display:flex;flex-wrap:wrap;gap:6px 16px;max-height:220px;overflow:auto;padding:4px 0}.check{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.file{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;border:1px dashed var(--border);border-radius:10px;cursor:pointer;color:var(--muted)}.file:hover{border-color:var(--gold)}.file input{display:none}.combo{position:relative}.combo-value{position:absolute;left:13px;top:10px;pointer-events:none}.combo .input::placeholder{color:transparent}.combo-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:4px;max-height:260px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.combo-list li{padding:8px 10px;border-radius:8px;cursor:pointer}.combo-list li:hover,.combo-list li[aria-selected=true]{background:var(--gold-soft)}.badges{display:flex;flex-wrap:wrap;gap:6px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;font-size:.76rem;font-weight:600;white-space:nowrap}.badge-green{background:var(--green-soft);color:var(--green)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-orange{background:var(--orange-soft);color:var(--orange)}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-primary{background:var(--gold-soft);color:var(--gold-strong)}.badge-neutral{background:var(--neutral-soft);color:var(--text)}.bool{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--neutral-soft);color:var(--muted)}.bool-yes{background:var(--green-soft);color:var(--green)}.cell-text a{color:var(--gold-strong);font-weight:600;display:inline-flex;align-items:center;gap:4px}.cell-sub{color:var(--muted);font-size:.82rem}.thumb{border:0;padding:0;background:none;cursor:zoom-in;display:inline-flex}.thumb img{height:44px;max-width:120px;border-radius:8px;object-fit:cover}.thumb-lg img{height:150px;max-width:100%;border-radius:12px}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.alert-error{background:var(--red-soft);color:var(--red)}.toasts{position:fixed;z-index:100;left:50%;transform:translate(-50%);bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;width:min(520px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:12px;background:#2b2b2b;color:#fff;box-shadow:0 8px 24px #0003;animation:toast-in .2s ease-out}.toast>span{flex:1}.toast-success{border-left:4px solid #4cc27f}.toast-error{border-left:4px solid #f07a6f}.toast-warning{border-left:4px solid #f0a04f}.toast-info{border-left:4px solid var(--gold)}.toast .btn{background:transparent;color:#fff;border-color:#ffffff4d}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.backdrop{position:fixed;inset:0;z-index:90;background:#0f0c0573;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{width:min(460px,100%);background:var(--surface);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 50px #00000040}.dialog h2{margin:0;font-size:1.15rem}.dialog p{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.lightbox{flex-direction:column;gap:12px;background:#000000d9}.lightbox img{max-width:100%;max-height:calc(100vh - 110px);border-radius:10px;object-fit:contain}.lightbox-bar{display:flex;align-items:center;gap:8px;color:#fff;flex-wrap:wrap;justify-content:center}.lightbox-bar .btn{background:#ffffff1f;color:#fff;border-color:transparent}.perm-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.perm-search{max-width:280px}.perm-grid{display:flex;flex-direction:column;gap:14px;max-height:560px;overflow-y:auto;padding-right:4px}.perm-app{border:1px solid var(--border);border-radius:14px;padding:6px 14px 10px}.perm-app-title{margin:8px 0 4px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.perm-row{display:grid;grid-template-columns:minmax(0,12rem) 1fr;align-items:center;gap:6px 14px;padding:7px 0;border-top:1px solid var(--border)}.perm-app-title+.perm-row{border-top:0}.perm-model{font-weight:600;font-size:.88rem}.perm-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}.perm-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:4px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.perm-btn:hover:not(:disabled){border-color:var(--gold);color:var(--text)}.perm-btn.on{background:var(--gold-soft);border-color:var(--gold);color:var(--gold-strong)}.perm-btn:disabled{opacity:.6;cursor:default}.perm-other{grid-column:1 / -1;justify-content:flex-start;text-align:left}.multi-buttons{display:flex;flex-wrap:wrap;gap:8px}.multi-buttons .perm-btn{padding:6px 14px}@media(max-width:600px){.perm-row{grid-template-columns:1fr}.perm-buttons{grid-template-columns:repeat(2,1fr)}}.login{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;background:#fff}.login-card{width:min(400px,100%);background:var(--surface);border-radius:20px;padding:32px 26px;box-shadow:var(--shadow);border:1px solid var(--border);display:flex;flex-direction:column;gap:16px}.login-logo{align-self:center;height:auto;margin-bottom:4px}.login-card h1{text-align:center;font-size:1.3rem}.login-card>p{text-align:center;margin:-8px 0 4px}.login-card .alert{margin:0}.login-foot{margin-top:18px;font-size:.8rem}.shell{min-height:100vh}.rail{position:fixed;top:12px;bottom:12px;left:12px;width:var(--sidebar-w);z-index:50;background:var(--dark);color:#e6e6e6;border-radius:26px;box-shadow:0 8px 30px #0000002e;display:flex;flex-direction:column;overflow:hidden}.rail-top{padding:16px 16px 8px}.rail-dots{display:flex;gap:6px;margin-bottom:16px}.rail-dots span{width:9px;height:9px;border-radius:50%;background:#555}.rail-dots span:first-child{background:var(--green)}.rail-brand{display:flex;align-items:center;gap:12px;color:#fff}.rail-brand .rail-text{display:flex;flex-direction:column;line-height:1.15}.rail-brand strong{letter-spacing:.08em}.rail-brand small{color:#b0b0b0;font-size:.76rem}.rail-logo{width:48px;height:48px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#e3bd45,var(--gold) 55%,#8a6a0f);box-shadow:0 4px 14px #c4971659}.rail-logo img{filter:brightness(0) invert(1)}.rail-search{display:flex;align-items:center;gap:8px;margin-top:16px;padding:0 12px;border-radius:999px;background:#474747;color:#b0b0b0}.rail-search input{flex:1;min-width:0;border:0;background:none;color:#f1f2f4;font:inherit;font-size:.88rem;padding:9px 0;outline:none}.rail-nav{flex:1;min-height:0;overflow-y:auto;padding:4px 14px 16px;scrollbar-width:thin;scrollbar-color:#555555 transparent}.rail-label{display:block;margin:12px 4px 10px;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#b0b0b0}.rail-item{display:flex;align-items:center;gap:12px;padding:4px 0;font-size:.92rem;font-weight:600;color:#e6e6e6}a.rail-item:hover{color:#fff}.rail-btn{width:46px;height:46px;flex-shrink:0;border-radius:50%;border:1px solid #5c5c5c;display:inline-flex;align-items:center;justify-content:center;color:#e0e0e0;transition:background .2s,box-shadow .25s,transform .2s ease,border-color .2s}.rail-item:hover .rail-btn{transform:scale(1.08);border-color:#c49716b3;box-shadow:0 0 14px #c4971659}.rail-item{transition:color .2s}a.rail-item:hover .rail-btn{background:#4a4a4a;color:#fff}.rail-item.active,.rail-group.active .rail-head{color:#fff}.rail-item.active .rail-btn,.rail-group.active .rail-btn{background:radial-gradient(circle at 35% 30%,#e3bd45,var(--gold) 70%);border-color:#e3bd45;color:#fff;box-shadow:0 0 0 4px #c4971638,0 0 22px #c4971699}.rail-group{margin-top:10px}.tree-wrap{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .3s ease,opacity .25s ease}.rail-group:hover .tree-wrap,.rail-group:focus-within .tree-wrap,.rail-group.open .tree-wrap{grid-template-rows:1fr;opacity:1}.tree-inner{min-height:0;overflow:hidden}.tree-title{display:none}.tree{list-style:none;margin:0 0 0 23px;padding:4px 0 0}.tree-item{opacity:0;transform:translate(-10px);transition:opacity .2s ease,transform .25s ease}.rail-group:hover .tree-item,.rail-group:focus-within .tree-item,.rail-group.open .tree-item{opacity:1;transform:none}.rail-group:hover .tree-item:nth-child(1),.rail-group.open .tree-item:nth-child(1){transition-delay:.06s}.rail-group:hover .tree-item:nth-child(2),.rail-group.open .tree-item:nth-child(2){transition-delay:.11s}.rail-group:hover .tree-item:nth-child(3),.rail-group.open .tree-item:nth-child(3){transition-delay:.16s}.rail-group:hover .tree-item:nth-child(4),.rail-group.open .tree-item:nth-child(4){transition-delay:.21s}.rail-group:hover .tree-item:nth-child(n+5),.rail-group.open .tree-item:nth-child(n+5){transition-delay:.26s}.tree-link{transition:color .15s,transform .15s}.tree-link:hover{transform:translate(3px)}@media(prefers-reduced-motion:reduce){.tree-wrap,.tree-item,.rail-btn,.tree-link{transition:none!important;transform:none!important}}.rail-head{cursor:pointer}.tree-item{position:relative;display:flex;align-items:center;padding-left:22px}.tree-item:before{content:"";position:absolute;left:0;top:-4px;height:calc(50% + 4px);width:14px;border-left:1.5px solid #606060;border-bottom:1.5px solid #606060;border-bottom-left-radius:10px}.tree-item:not(:last-child):after{content:"";position:absolute;left:0;top:50%;bottom:0;border-left:1.5px solid #606060}.tree-link{flex:1;min-width:0;padding:7px 10px;border-radius:10px;font-size:.88rem;color:#d4d4d4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-link:hover{color:#fff}.tree-link.active{color:var(--gold);font-weight:600}.rail-group.active .tree-item:before,.rail-group.active .tree-item:after{border-color:#c497168c}.tree-add{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#b0b0b0;flex-shrink:0}.tree-add:hover{color:var(--gold)}.rail-empty{margin:8px 4px;color:#b0b0b0;font-size:.88rem}.rail-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.rail-top-row .rail-dots{margin-bottom:0}.rail-toggle{width:30px;height:30px;border-radius:50%;border:1px solid #5c5c5c;background:none;color:#d4d4d4;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s}.rail-toggle:hover{background:#4a4a4a;color:#fff}.rail{transition:width .25s ease}.main{transition:margin-left .25s ease}@media(min-width:901px){.shell.collapsed{--sidebar-w: 78px}.collapsed .rail-text,.collapsed .rail-search,.collapsed .rail-label{display:none}.collapsed .rail-top{padding:16px 0 8px;display:flex;flex-direction:column;align-items:center}.collapsed .rail-top-row{flex-direction:column;gap:12px}.collapsed .rail-nav{padding:12px 0 16px;display:flex;flex-direction:column;align-items:center;gap:4px}.collapsed .rail-group{margin-top:6px;align-self:stretch;display:flex;flex-direction:column;align-items:center}.collapsed .tree-wrap{position:fixed;left:calc(var(--sidebar-w) - 4px);top:var(--fly-top, 100px);z-index:60;padding-left:20px;visibility:hidden;transition:grid-template-rows .3s ease,opacity .25s ease,visibility 0s linear .3s}.collapsed .rail-group:hover .tree-wrap,.collapsed .rail-group:focus-within .tree-wrap{visibility:visible;transition:grid-template-rows .3s ease,opacity .25s ease,visibility 0s}.collapsed .tree-inner{background:var(--dark);border-radius:18px;box-shadow:0 12px 34px #00000040}.collapsed .tree-title{display:block;margin:12px 14px 2px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b0b0b0}.collapsed .tree{margin:0 12px 10px 18px;min-width:190px}.collapsed .rail-group.open:not(:hover):not(:focus-within) .tree-wrap{grid-template-rows:0fr;opacity:0}.collapsed .rail-nav:has(.rail-group:hover) .rail-group:not(:hover) .tree-wrap{visibility:hidden;opacity:0;grid-template-rows:0fr;transition:none}.collapsed .rail-foot{padding:12px 0 calc(12px + env(safe-area-inset-bottom));align-items:center}.collapsed .rail-install{width:40px;height:40px;padding:0;border-radius:50%}.collapsed .rail-me{flex-direction:column}.collapsed .rail-profile{flex:none;margin:0}}.rail-foot{border-top:1px solid #4a4a4a;padding:12px 14px calc(12px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}.rail-install{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #5c5c5c;background:none;color:#e6e6e6;font:inherit;font-size:.85rem;padding:8px;border-radius:999px;cursor:pointer}.rail-install:hover{background:#4a4a4a;color:#fff}.rail-me{display:flex;align-items:center;gap:10px}.rail-profile{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:4px;margin:-4px;border-radius:999px;transition:background .15s}.rail-profile:hover,.rail-profile.active{background:#4a4a4a}.rail-profile:hover .rail-avatar,.rail-profile.active .rail-avatar{box-shadow:0 0 0 2px var(--gold)}.rail-avatar{width:38px;height:38px;border-radius:50%;background:#4a4a4a;color:var(--gold);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem}.rail-me-name{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.rail-me-name strong{color:#f1f2f4;font-size:.86rem}.rail-me-name small{color:#b0b0b0;font-size:.74rem}.rail-me-name strong,.rail-me-name small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-logout{width:36px;height:36px;border-radius:50%;border:0;background:none;color:#d4d4d4;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.rail-logout:hover{background:#4a4a4a;color:#fff}.avatar{width:36px;height:36px;border-radius:50%;background:var(--gold-soft);color:var(--gold-strong);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.avatar-lg{width:64px;height:64px;font-size:1.2rem}.main{margin-left:calc(var(--sidebar-w) + 12px);min-width:0}.scrim,.only-mobile{display:none}.offline{display:flex;align-items:center;gap:8px;justify-content:center;padding:8px 16px;background:var(--orange-soft);color:var(--orange);font-size:.88rem}.page{padding:20px 24px 32px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin:4px 0 0}.head-actions{display:flex;gap:8px;align-items:center}@media(max-width:900px){.rail{transform:translate(calc(-100% - 16px));transition:transform .2s ease}.nav-open .rail{transform:none}.nav-open .scrim{display:block;position:fixed;inset:0;z-index:40;background:#00000059}.main{margin-left:0}.only-mobile{display:inline-flex}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar-title{font-weight:700}.page{padding:18px 16px 32px}h1{font-size:1.25rem}}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:24px}.stat{position:relative;display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.stat:hover{border-color:var(--gold)}.stat app-icon{position:absolute;right:14px;top:18px;color:var(--muted)}.stat-count{font-size:1.9rem;font-weight:800;line-height:1.1}.stat-label{color:var(--muted);font-size:.88rem}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.link-list{list-style:none;margin:0;padding:0}.link-list li{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border)}.link-list li:first-child{border-top:0}.link-main{flex:1;display:flex;align-items:center;justify-content:space-between;padding:10px 2px;font-weight:500}.link-main:hover{color:var(--gold-strong)}.chip{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:99px;background:var(--gold-soft);color:var(--gold-strong);font-size:.75rem;font-weight:600}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.search{position:relative;flex:1;min-width:200px;max-width:420px}.search app-icon{position:absolute;left:12px;top:12px;color:var(--muted)}.search .input{padding-left:36px}.filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;padding:16px;margin-bottom:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.action-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;border-radius:var(--radius);background:var(--gold-soft)}.action-bar .input{width:auto;min-width:220px;flex:1;max-width:360px;min-height:34px;padding:5px 10px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}.segmented button{border:0;background:var(--surface);color:var(--muted);padding:8px 11px;cursor:pointer;display:inline-flex}.segmented button.active{background:var(--gold-soft);color:var(--gold-strong)}.dimmed{opacity:.55;pointer-events:none;transition:opacity .15s}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow)}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:12px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:0}.table tr.is-selected{background:var(--gold-soft)}.col-check{width:40px}.sort{border:0;background:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}.sort.sorted,.sort:hover{color:var(--text)}.empty-row td,.empty{text-align:center;color:var(--muted);padding:32px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--gold);cursor:pointer}@media(max-width:700px){.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{padding:10px 14px;border-bottom:1px solid var(--border);position:relative}.table td{border:0;padding:4px 0;display:flex;gap:12px;justify-content:space-between;align-items:center}.table td:before{content:attr(data-label);color:var(--muted);font-size:.78rem;flex-shrink:0}.table td>app-cell{text-align:right;min-width:0}.table td.col-check{position:absolute;right:12px;top:10px;width:auto}.table td.col-check:before{content:none}.table td:nth-child(2){padding-right:34px}}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px}.artisan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:14px}.artisan-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:44px 16px 14px;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.artisan-card{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.artisan-card:hover{border-color:var(--gold);box-shadow:0 6px 20px #1c1f3414;transform:translateY(-1px)}.artisan-card.is-selected{outline:2px solid var(--gold)}.artisan-head{display:flex;align-items:center;gap:12px;min-width:0;margin-bottom:4px}.artisan-id{display:flex;flex-direction:column;gap:2px;min-width:0}.artisan-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--neutral-soft);color:var(--muted);font-size:1.05rem;font-weight:700;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border)}.artisan-avatar.is-certified{box-shadow:0 0 0 3px var(--gold)}.artisan-avatar img{width:100%;height:100%;object-fit:cover}.service-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr))}.service-tile{position:relative;display:flex;flex-direction:column;gap:3px;padding:10px 10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;min-width:0}.service-tile:hover{border-color:var(--gold);box-shadow:0 6px 20px #1c1f3414;transform:translateY(-1px)}.service-tile.is-selected{outline:2px solid var(--gold)}.service-tile .card-check{top:18px;left:18px}.service-tile .artisan-name{margin-top:8px;padding:0 4px}.service-tile .name-phone,.service-count{padding:0 4px}.service-count{font-size:.84rem;color:var(--text)}.service-summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;font-size:.92rem}.service-summary>app-icon{color:var(--gold-strong)}.service-image{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:14px;overflow:hidden;background:var(--neutral-soft);color:var(--muted)}.service-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.banner-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.service-image.is-wide{aspect-ratio:2 / 1}.reorder-hint{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:.86rem}.drag-handle{position:absolute;top:18px;left:50%;z-index:2;transform:translate(-50%);display:flex;align-items:center;justify-content:center;width:38px;height:30px;border:0;border-radius:10px;background:#ffffffeb;color:var(--text);cursor:grab;touch-action:none;box-shadow:0 1px 4px #00000026}.drag-handle:active{cursor:grabbing}.service-tile.is-dragging{opacity:.55;transform:scale(.97);border-color:var(--gold);box-shadow:none}.service-tile:hover .service-image img{transform:scale(1.04)}.service-state{position:absolute;top:8px;right:8px;padding:3px 9px;border-radius:999px;background:#ffffffeb;font-size:.75rem;font-weight:700;color:var(--muted)}.service-state.on{color:var(--green)}.card-check{position:absolute;top:12px;left:12px;background:var(--surface);border-radius:6px;padding:4px;display:flex}.artisan-name{font-weight:700;font-size:.95rem;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;max-width:100%}.name-text{overflow:hidden;text-overflow:ellipsis;min-width:0}.artisan-name:hover{color:var(--gold-strong)}.artisan-meta{display:flex;flex-wrap:nowrap;gap:4px;font-size:.84rem;color:var(--text);white-space:nowrap;min-width:0}.artisan-meta>span:first-child{overflow:hidden;text-overflow:ellipsis}.nowrap{white-space:nowrap}.name-phone{font-size:.84rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.card-matricule{font-size:.8rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.artisan-meta .sep{color:var(--muted)}.mono-soft{color:var(--muted);font-variant-numeric:tabular-nums}.availability{color:var(--muted);font-weight:600;font-size:.84rem}.availability:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:1px}.availability.on{color:var(--green)}.artisan-card .card-status{position:absolute;top:12px;right:12px;margin:0}.artisan-card .card-status .badge{background:none;padding:0;font-weight:700}.artisan-date{margin-top:auto;padding-top:6px}.order-card{padding-top:40px;gap:8px}.order-line{display:flex;flex-direction:column;gap:1px;min-width:0}.order-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.order-card .order-date{font-size:.82rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.order-foot{display:flex;align-items:center;gap:6px;margin-top:2px;padding-top:8px;border-top:1px solid var(--border);font-size:.84rem;white-space:nowrap;min-width:0}.order-foot .sep{color:var(--muted)}.order-status{font-weight:700;overflow:hidden;text-overflow:ellipsis}.tone-green{color:var(--green)}.tone-red{color:var(--red)}.tone-blue{color:var(--blue)}.tone-primary{color:var(--gold-strong)}.tone-orange{color:var(--orange)}.tone-neutral{color:var(--muted)}.user-cell{display:flex;align-items:center;gap:10px;min-width:0;text-align:left}.user-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--neutral-soft);color:var(--muted);font-weight:700;font-size:.82rem}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}.user-text strong{display:inline-flex;align-items:center;gap:4px}.user-text small{color:var(--muted);font-size:.8rem}.certif-inline{color:var(--gold);display:inline-flex;flex-shrink:0}.reason{background:var(--red-soft);color:var(--red);border-radius:8px;padding:7px 10px;font-size:.82rem;margin-top:4px}.crumbs{margin-bottom:14px}.crumbs a{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.9rem;font-weight:600}.crumbs a:hover{color:var(--gold-strong)}.hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px;margin-bottom:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-photo{width:76px;height:76px;border-radius:50%;overflow:hidden;border:0;padding:0;cursor:zoom-in;background:var(--neutral-soft);color:var(--muted);display:flex;align-items:center;justify-content:center;flex-shrink:0}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-body{flex:1;min-width:200px;display:flex;flex-direction:column;gap:4px}.hero-body p{margin:0}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.badge-link{text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:filter .15s}.badge-link:hover{filter:brightness(.94);text-decoration:underline}.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:14px;border-bottom:1px solid var(--border);scrollbar-width:none}.tabs button{border:0;background:none;font:inherit;font-weight:600;font-size:.9rem;color:var(--muted);padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.active{color:var(--text);border-bottom-color:var(--gold)}.form,.form .card{display:flex;flex-direction:column;gap:14px}.form .card-title{margin:0}.form-row{display:grid;grid-template-columns:repeat(var(--cols, 1),minmax(0,1fr));gap:14px}@media(max-width:700px){.form-row{grid-template-columns:1fr}}.save-bar{position:sticky;bottom:0;z-index:10;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%)}.history-item{padding:10px 0;border-top:1px solid var(--border)}.history-item:first-child{border-top:0}.history-step{padding-left:10px;border-left:3px solid var(--border)}.history-info{border-left-color:var(--blue)}.history-success{border-left-color:var(--green)}.history-danger{border-left-color:var(--red)}.history-warning{border-left-color:var(--orange)}.history-danger strong{color:var(--red)}.history-success strong{color:var(--green)}.chat{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.chat-thread{height:min(60vh,560px);overflow-y:auto;padding:18px 6%;display:flex;flex-direction:column;gap:4px;background-color:#f4efe6;background-image:radial-gradient(rgba(196,151,22,.08) 1.2px,transparent 1.2px);background-size:18px 18px}.chat-day{align-self:center;margin:10px 0 6px}.chat-day span{display:inline-block;padding:5px 12px;border-radius:8px;background:#ffffffeb;font-size:.75rem;color:var(--muted);box-shadow:0 1px 1px #0000000f;text-transform:capitalize}.bubble{position:relative;max-width:min(65%,560px);align-self:flex-start;background:#fff;border-radius:0 10px 10px;padding:6px 9px;box-shadow:0 1px 1px #00000014;margin-top:4px}.bubble-staff{align-self:flex-end;background:#fdf3cf;border-radius:10px 0 10px 10px}.bubble-author{font-size:.75rem;font-weight:700;color:var(--gold-strong);margin-bottom:1px}.bubble-meta{font-size:.72rem;color:var(--muted);margin-bottom:2px}.bubble-text{white-space:pre-wrap;word-wrap:break-word;font-size:.93rem;line-height:1.4}.bubble-text:after{content:"";display:inline-block;width:64px}.bubble-stamp{float:right;margin:4px 0 -2px 10px;font-size:.68rem;color:var(--muted);line-height:1;display:inline-flex;align-items:center;gap:3px;position:relative;top:2px}.bubble-text+.bubble-stamp{margin-top:-14px}.bubble-ticks{letter-spacing:-3px;color:#9aa0a6;font-weight:700}.bubble-ticks.read{color:#34b7f1}.bubble-image{border:0;padding:0;background:none;cursor:zoom-in}.bubble-image img{max-width:240px;max-height:240px;border-radius:10px;display:block}.voice{display:flex;align-items:center;gap:10px;min-width:220px;max-width:280px;padding:2px 0}.voice audio{display:none}.voice-play{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;background:var(--gold);color:#fff;cursor:pointer}.voice-play:hover{filter:brightness(.95)}.voice-bar{flex:1;height:6px;padding:0;border:0;border-radius:999px;background:var(--border);overflow:hidden;cursor:pointer}.voice-bar span{display:block;height:100%;background:var(--gold);border-radius:999px;transition:width .1s linear}.voice-time{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:2.6rem;text-align:right}.bubble-video{display:block;max-width:min(280px,100%);max-height:320px;border-radius:10px;background:#000}.bubble-file{display:flex;align-items:center;gap:6px;font-size:.86rem;color:var(--muted)}.bubble-call{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600}.call-icon{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--green-soft);color:var(--green)}.bubble-call.missed .call-icon{background:var(--red-soft);color:var(--red)}.chat-input{display:flex;gap:8px;padding:10px 14px;background:var(--surface-2);border-top:1px solid var(--border);align-items:flex-end}.chat-input .input{min-height:44px;max-height:140px;border-radius:22px;padding:11px 16px;resize:none;background:#fff}.chat-input .btn{min-height:44px;width:44px;padding:0;border-radius:50%;flex-shrink:0;justify-content:center}app-inbox{display:block;padding-top:12px}.inbox{display:grid;grid-template-columns:minmax(300px,380px) 1fr;height:calc(100dvh - 24px);margin:0 12px 0 0;background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden}.inbox-list{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border)}.inbox-list-head{display:flex;align-items:center;gap:10px;padding:18px 18px 10px}.inbox-list-head h1{font-size:1.3rem;margin:0}.inbox-unread-total{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--gold);color:#fff;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.inbox-search{display:flex;align-items:center;gap:8px;margin:0 14px;padding:0 14px;height:38px;border-radius:10px;background:var(--surface-2);color:var(--muted)}.inbox-search input{flex:1;border:0;background:none;font:inherit;font-size:.9rem;outline:none;color:var(--text)}.inbox-filters{display:flex;gap:6px;padding:10px 14px}.inbox-items{flex:1;overflow-y:auto;min-height:0}.inbox-item{display:flex;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;color:inherit;cursor:pointer}.inbox-item:hover{background:var(--surface-2)}.inbox-item.active{background:var(--gold-soft)}.inbox-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding-bottom:10px;margin-bottom:-10px;border-bottom:1px solid var(--border)}.inbox-item:last-child .inbox-item-body{border-bottom:0}.inbox-item-top,.inbox-item-bottom{display:flex;align-items:center;gap:8px;min-width:0}.inbox-name{flex:1;min-width:0;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inbox-time{font-size:.72rem;color:var(--muted);flex-shrink:0}.inbox-time.unread{color:var(--gold-strong);font-weight:700}.inbox-preview{flex:1;min-width:0;display:flex;align-items:center;gap:4px;font-size:.85rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inbox-preview app-icon{flex-shrink:0}.inbox-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--gold);color:#fff;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.inbox-closed{font-size:.7rem;color:var(--muted);flex-shrink:0}.inbox-avatar{width:46px;height:46px;border-radius:50%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--gold-soft);color:var(--gold-strong);font-weight:700;font-size:.9rem}.inbox-avatar img{width:100%;height:100%;object-fit:cover}.inbox-empty{padding:20px;text-align:center}.inbox-chat{display:flex;flex-direction:column;min-width:0;min-height:0}.inbox-chat-head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface-2);border-bottom:1px solid var(--border)}.inbox-chat-head .inbox-avatar{width:40px;height:40px}.inbox-chat-title{flex:1;min-width:0;display:flex;flex-direction:column}.inbox-chat-title strong,.inbox-chat-title small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inbox-chat-title small{color:var(--muted);font-size:.8rem}.inbox-back{display:none}.inbox-chat app-support-chat{flex:1;min-height:0;display:flex}.inbox-chat .chat{flex:1;border:0;border-radius:0;min-height:0}.inbox-chat .chat-thread{height:auto;flex:1;min-height:0}.inbox-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;background:var(--surface-2);border-bottom:6px solid var(--gold)}.inbox-placeholder h2{margin:8px 0 0;font-size:1.4rem;font-weight:600}.inbox-placeholder p{max-width:360px}@media(max-width:900px){app-inbox{padding-top:0}.inbox{grid-template-columns:1fr;margin:0;height:calc(100dvh - 56px);border-radius:0;border:0}.inbox.has-open .inbox-list{display:none}.inbox:not(.has-open) .inbox-chat{display:none}.inbox-back{display:inline-flex}.bubble{max-width:85%}.chat-thread{padding:14px 10px}}.chat-empty,.chat-closed{text-align:center;padding:12px;margin:0}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 10px}.stat-plain:hover{border-color:var(--border)}.stat-delta{color:var(--muted);font-size:.78rem;margin-top:4px}.push-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;margin-bottom:20px;border-radius:var(--radius);background:var(--gold-soft);color:var(--text)}.push-card>app-icon{color:var(--gold-strong)}.push-card>div{flex:1;min-width:200px}.push-card p{margin:2px 0 0;flex:1;min-width:200px}.push-on{background:var(--green-soft)}.push-on>app-icon{color:var(--green)}.chart-card{margin-bottom:14px;min-width:0}.insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:14px;margin-top:14px}.insight-grid .card{margin:0;min-width:0}.sub-title{font-size:.85rem;font-weight:700;margin:16px 0 8px}.block{display:block}.link-strong{font-weight:700}.link-strong:hover{color:var(--gold-strong)}.hbar-row{display:grid;grid-template-columns:minmax(0,9rem) 1fr auto;align-items:center;gap:4px 10px;padding:6px 0}.hbar-label{font-size:.86rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:3px}a.hbar-label:hover{color:var(--gold-strong)}.hbar{height:10px;border-radius:999px;background:var(--neutral-soft);overflow:hidden}.hbar-fill{display:block;height:100%;border-radius:999px;background:var(--gold)}.hbar-red{background:var(--red)}.hbar-value{font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;min-width:2.5rem;text-align:right}.hbar-sub{grid-column:2 / -1;margin-top:-2px}.review{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--border);text-decoration:none;color:inherit}.review:hover .review-text{color:var(--gold-strong)}.review-stars{color:var(--gold);letter-spacing:1px;font-size:.85rem}.review-text{font-size:.9rem}@media(max-width:600px){.hbar-row{grid-template-columns:minmax(0,6.5rem) 1fr auto}}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.chart-head .card-title{margin:0}.seg{display:flex;gap:4px}.chart-sum{margin:0 0 12px;font-size:.85rem}.chart{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:3px;align-items:end;height:200px}.chart-col{height:100%;padding-top:16px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}.chart-val{position:absolute;bottom:100%;left:50%;transform:translate(-50%);font-size:.68rem;color:var(--muted);line-height:1.4}.chart-bar{position:relative;width:100%;max-width:28px;background:var(--gold);border-radius:4px 4px 0 0;opacity:.75}.chart-col:hover .chart-bar,.chart-bar.chart-today{opacity:1}.chart-axis{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:3px;border-top:1px solid var(--border);padding-top:6px}.chart-axis span{font-size:.68rem;color:var(--muted);text-align:center;white-space:nowrap;overflow:visible}@media(max-width:700px){.chart{height:160px;gap:2px}.chart-val{display:none}}.quick-filter{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:-4px 0 14px}.chip-btn{border:1px solid var(--border);background:var(--surface);font:inherit;font-size:.86rem;font-weight:600;color:var(--muted);padding:7px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.chip-btn:hover{color:var(--text);border-color:var(--gold)}.chip-btn.active{color:#fff;background:var(--gold);border-color:var(--gold)}
