:root{--font: "DM Sans", ui-sans-serif, system-ui, sans-serif;--blue: #43c2f3;--green: #7ed957;--green-dark: #2bb673;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--canvas: #f4f7fb;--white: #ffffff;--navy: #07111f;--navy-2: #0b1728;--danger: #e11d48;--radius: 16px;--shadow: 0 12px 40px rgba(15, 23, 42, .08)}*{box-sizing:border-box}html,body,#app{min-height:100%;width:100%;margin:0;overflow-x:hidden}body{font-family:var(--font);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.icon{width:16px;height:16px;flex-shrink:0}.icon-md{width:20px;height:20px}.btn{border:0;border-radius:12px;padding:10px 16px;cursor:pointer;font-weight:600;font-size:14px}.btn-primary{background:var(--ink);color:var(--white)}.btn-primary:hover{background:#1e293b}.btn-danger{background:var(--danger);color:var(--white)}.btn-danger:hover{background:#be123c}.btn-ghost{background:transparent;color:var(--muted)}.btn-link{background:none;border:0;padding:0;color:var(--blue);font-weight:600;cursor:pointer}.btn-danger-link{background:none;border:0;padding:0;color:var(--danger);font-weight:600;cursor:pointer}.btn:disabled{opacity:.55;cursor:not-allowed}.field{display:block;margin-bottom:14px}.field span{display:block;margin-bottom:6px;font-size:14px;font-weight:500}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 14px;outline:none;background:var(--white)}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue)}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-header h2{margin:0;font-size:24px}.page-header p{margin:6px 0 0;color:var(--muted);font-size:14px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--white);border-radius:20px;box-shadow:var(--shadow)}.table-toolbar{display:flex;justify-content:flex-end;padding:12px 16px 0}.table-wrap table{width:100%;border-collapse:collapse;font-size:14px}.table-wrap th,.table-wrap td{padding:12px 16px;text-align:left}.table-wrap th{background:#f8fafc;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table-wrap td{border-top:1px solid var(--line)}.table-actions{text-align:right;white-space:nowrap}.table-actions .btn-link{margin-right:10px}.table-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;vertical-align:middle}.table-icon-btn+.table-icon-btn{margin-left:2px}.table-icon-btn:hover{background:#f1f5f9;color:var(--ink)}.table-icon-btn.danger{color:var(--danger)}.table-icon-btn.danger:hover{background:#fff1f2;color:var(--danger)}.table-icon-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);padding:5px 8px;border-radius:6px;background:var(--ink);color:var(--white);font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:5}.table-icon-btn[data-tooltip]:hover:after,.table-icon-btn[data-tooltip]:focus-visible:after{opacity:1}.table-empty{text-align:center;color:var(--muted);padding:40px 16px}.table-filter-row th{padding-top:4px;padding-bottom:10px;background:#fff;text-transform:none;letter-spacing:0}.table-filter{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px;background:var(--white)}.limit-popup-message{margin:0 0 16px;color:var(--muted);line-height:1.5}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}.pager{display:flex;gap:8px;align-items:center}.pager button{border:1px solid var(--line);background:var(--white);border-radius:8px;padding:4px 10px;cursor:pointer}.pager button:disabled{opacity:.4}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#07111f73;border:0}.modal-card{position:relative;width:100%;max-width:520px;max-height:min(90vh,800px);margin:auto 0;overflow:auto;background:var(--white);border-radius:20px;padding:24px;box-shadow:var(--shadow)}.modal-card-lg{max-width:860px}.modal-card-fit{width:max-content;max-width:min(100%,calc(100vw - 32px))}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.modal-head h3{margin:0;padding-right:8px}.modal-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;padding:0;border:0;border-radius:999px;background:#f1f5f9;color:#64748b;cursor:pointer}.modal-close:hover{background:#e2e8f0;color:var(--ink)}.modal-close:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px}.toast{position:fixed;top:max(12px,env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));z-index:80;width:min(380px,calc(100vw - 24px));overflow:hidden;background:var(--white);color:var(--ink);border-radius:16px;box-shadow:0 16px 40px #0f172a29;animation:toast-in .18s ease-out}.toast.success{--toast-accent: var(--green-dark)}.toast.error{--toast-accent: var(--danger)}.toast.warning{--toast-accent: #d97706}.toast-body{display:flex;align-items:flex-start;gap:12px;padding:14px 14px 12px}.toast-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:999px;background:color-mix(in srgb,var(--toast-accent) 14%,white);color:var(--toast-accent)}.toast-message{flex:1;padding-top:5px;font-size:14px;font-weight:600;line-height:1.4}.toast-action{align-self:center;color:var(--toast-accent);font-weight:700;font-size:13px;text-decoration:underline;white-space:nowrap}.toast-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;margin-top:-2px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.toast-close:hover{background:#f1f5f9;color:var(--ink)}.toast-progress{height:3px;background:#e2e8f0}.toast-progress span{display:block;width:100%;height:100%;background:var(--toast-accent);transform-origin:left center;animation:toast-progress-shrink var(--toast-duration, 4s) linear forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-progress-shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.card{background:var(--white);border-radius:20px;padding:20px;box-shadow:var(--shadow)}.locale-switcher{position:relative;display:inline-block}.locale-trigger{display:inline-flex;align-items:center;gap:8px;min-width:118px;border:1px solid var(--line);background:var(--white);border-radius:12px;padding:8px 10px;cursor:pointer;color:var(--ink);font:inherit}.locale-trigger:hover{border-color:#cbd5e1}.locale-switcher.open .locale-trigger{border-color:var(--blue)}.locale-code{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 6px;border-radius:7px;background:#f1f5f9;font-size:11px;font-weight:700;letter-spacing:.04em}.locale-name{flex:1;text-align:left;font-size:13px;font-weight:600}.locale-chevron{width:14px;height:14px;color:var(--muted);transition:transform .15s ease}.locale-switcher.open .locale-chevron{transform:rotate(180deg)}.locale-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:100%;margin:0;padding:6px;list-style:none;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.locale-option{width:100%;display:flex;align-items:center;gap:8px;border:0;background:transparent;border-radius:10px;padding:8px 10px;cursor:pointer;color:var(--ink);font:inherit}.locale-option:hover,.locale-option.active{background:#f8fafc}.locale-option.active .locale-code{background:var(--ink);color:#fff}@media(max-width:720px){.page-header{align-items:flex-start;margin-bottom:16px}.page-header h2{font-size:20px}.field input,.field textarea,.field select{font-size:16px}.table-wrap th,.table-wrap td{padding:10px 12px;white-space:nowrap}.modal-backdrop{padding:12px 8px;align-items:stretch}.modal-card,.modal-card-lg,.modal-card-fit{width:100%;max-width:100%;max-height:calc(100svh - 24px);padding:16px;border-radius:16px}.modal-actions{flex-wrap:wrap}.modal-actions .btn{flex:1 1 auto}}.app-shell{height:100svh;max-height:100svh;overflow:hidden;display:flex;align-items:stretch;background:#020617}.app-main{flex:1;min-width:0;min-height:0;height:100svh;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas)}.app-content{flex:1;min-width:0;min-height:0;padding:24px 32px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.sidebar{width:280px;height:100svh;background:#020617;color:#e2e8f0;display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width .32s cubic-bezier(.22,1,.36,1)}.sidebar-brand,.sidebar-nav{width:280px}.sidebar-brand{flex-shrink:0;padding:20px}.sidebar-nav{flex:1;min-height:0;overflow-y:auto;padding:0 12px 24px;overscroll-behavior:contain}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:999px}.sidebar-group{margin-bottom:22px}.sidebar-group-title{margin:0 12px 8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#64748b;font-weight:700}.sidebar-link{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:12px;color:#cbd5e1;font-size:14px;margin-bottom:4px}.sidebar-link.active,.sidebar-link:hover{background:#ffffff14;color:#fff}.sidebar.collapsed{width:0;pointer-events:none}.sidebar-scrim{display:none}.topbar{position:relative;z-index:20;flex-shrink:0;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-inner{display:flex;justify-content:space-between;align-items:center;padding:16px 32px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.topbar-left .brand-logo{height:28px;max-width:120px}.topbar .locale-switcher{margin-right:8px}.topbar .locale-trigger{background:var(--white);border:1px solid var(--line);color:var(--ink)}.topbar .locale-trigger:hover,.topbar .locale-switcher.open .locale-trigger{background:#fff;border-color:#94a3b8}.topbar .locale-code{background:#e2e8f0;color:var(--ink)}.topbar .locale-name{color:var(--ink)}.topbar .locale-chevron{color:#64748b}.topbar .locale-menu{min-width:160px}.profile-menu{position:relative}.profile-trigger{display:flex;align-items:center;gap:12px;padding:0;border:0;background:none;cursor:pointer;color:inherit;text-align:right}.topbar-user{text-align:right}.topbar-user p,.profile-dropdown-user p{margin:0;font-size:14px;font-weight:600}.topbar-user span,.profile-dropdown-user span{font-size:12px;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.profile-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:176px;padding:4px;background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.profile-dropdown-user{display:none;padding:6px 8px 8px;border-bottom:1px solid var(--line);margin-bottom:4px;text-align:left}.profile-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;border:0;border-radius:8px;background:none;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}.profile-item .icon{width:14px;height:14px}.profile-item:hover:not(:disabled){background:#f8fafc}.profile-item:disabled{color:var(--muted);cursor:not-allowed;opacity:.55}.profile-item.danger{color:var(--danger)}.profile-item.danger:hover:not(:disabled){background:#fff1f2}.menu-btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;padding:8px;color:var(--ink);border-radius:8px;cursor:pointer}.menu-btn:hover{background:#f1f5f9}.brand-logo{height:56px;width:auto;max-width:260px;object-fit:contain;display:block}.brand-logo.compact{height:32px;max-width:140px}@media(max-width:900px){.sidebar,.sidebar.collapsed,.sidebar.open{width:280px}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;padding-top:env(safe-area-inset-top,0px);transform:translate(-100%);transition:transform .32s cubic-bezier(.22,1,.36,1)}.sidebar.open{transform:translate(0);pointer-events:auto}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;border:0;background:#02061766;opacity:0;pointer-events:none;transition:opacity .32s ease}.sidebar-scrim.visible{opacity:1;pointer-events:auto}.topbar-user{display:none}.profile-dropdown-user{display:block}.app-content{padding:16px 12px calc(16px + env(safe-area-inset-bottom,0px))}.topbar-inner{padding:12px}.topbar .locale-name{display:none}}@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-scrim{transition:none}}.login-page{min-height:100svh;position:relative;overflow-x:hidden;overflow-y:auto;background:var(--navy);color:#fff}.login-locale{position:absolute;top:20px;right:20px;z-index:5}.login-locale .locale-trigger{background:#ffffff14;border-color:#ffffff1f;color:#e2e8f0}.login-locale .locale-code{background:#ffffff1f;color:#fff}.login-locale .locale-chevron{color:#94a3b8}.login-locale .locale-menu{min-width:160px}.login-orb{position:absolute;border-radius:50%;filter:blur(64px);pointer-events:none}.login-orb.blue{width:320px;height:320px;left:-80px;top:-80px;background:#43c2f347}.login-orb.green{width:380px;height:380px;right:-80px;bottom:-100px;background:#7ed95738}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.04) 1px,transparent 1px);background-size:72px 72px}.login-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at center,transparent 0%,var(--navy) 72%)}.login-wrap{position:relative;z-index:1;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:40px 16px}.login-col{width:100%;max-width:440px}.login-logo{display:flex;justify-content:center;margin-bottom:32px}.login-card{border:1px solid rgba(255,255,255,.1);background:#ffffff12;border-radius:28px;padding:32px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:999px;padding:4px 12px;font-size:12px;color:#cbd5e1;margin-bottom:20px}.login-badge .icon{color:var(--green)}.login-card h1{margin:0;font-size:30px}.login-card .lead{margin:8px 0 0;color:#94a3b8;font-size:14px;line-height:1.6}.login-form{margin-top:28px}.login-form .field span{color:#cbd5e1}.login-form input{background:var(--navy-2);border-color:#ffffff1a;color:#fff}.login-password{position:relative}.login-password input{padding-right:48px}.login-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;color:#94a3b8;cursor:pointer}.login-error{border:1px solid rgba(248,113,113,.25);background:#ef44441f;color:#fecaca;border-radius:16px;padding:12px 16px;font-size:14px}.login-submit{width:100%;margin-top:8px;border:0;border-radius:16px;padding:14px;font-weight:700;color:#062033;cursor:pointer;background:linear-gradient(90deg,var(--blue),var(--green-dark))}.login-signup{margin:18px 0 0;text-align:center;font-size:13px;color:#94a3b8}.login-signup a{color:#fff;font-weight:700;margin-left:4px}.login-chips{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:28px}.login-chips div{text-align:center;font-size:12px;color:#94a3b8;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:16px;padding:12px 8px}@media(max-width:640px){.login-locale{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}.login-wrap{align-items:flex-start;padding:calc(64px + env(safe-area-inset-top,0px)) 12px calc(24px + env(safe-area-inset-bottom,0px))}.login-card{padding:20px 16px;border-radius:20px}.login-card h1{font-size:24px}.login-form input{font-size:16px}.login-chips{grid-template-columns:1fr}}.signup-page{min-height:100svh;position:relative;overflow-x:hidden;overflow-y:auto;background:var(--navy);color:#fff}.signup-locale{position:absolute;top:20px;right:20px;z-index:5}.signup-locale .locale-trigger{background:#ffffff14;border-color:#ffffff1f;color:#e2e8f0}.signup-locale .locale-code{background:#ffffff1f;color:#fff}.signup-locale .locale-chevron{color:#94a3b8}.signup-orb{position:absolute;border-radius:50%;filter:blur(64px);pointer-events:none}.signup-orb.blue{width:320px;height:320px;left:-80px;top:-80px;background:#43c2f347}.signup-orb.green{width:380px;height:380px;right:-80px;bottom:-100px;background:#7ed95738}.signup-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.04) 1px,transparent 1px);background-size:72px 72px}.signup-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at center,transparent 0%,var(--navy) 72%)}.signup-wrap{position:relative;z-index:1;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:40px 16px}.signup-col{width:100%;max-width:560px}.signup-logo{display:flex;justify-content:center;margin-bottom:24px}.signup-card{border:1px solid rgba(255,255,255,.1);background:#ffffff12;border-radius:28px;padding:28px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.signup-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:999px;padding:4px 12px;font-size:12px;color:#cbd5e1;margin-bottom:16px}.signup-badge .icon{color:var(--green)}.signup-card h1{margin:0;font-size:28px}.signup-card .lead{margin:8px 0 0;color:#94a3b8;font-size:14px;line-height:1.6}.signup-steps{display:flex;align-items:center;gap:10px;margin:22px 0 8px}.signup-step{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:13px}.signup-step.active,.signup-step.done{color:#e2e8f0}.signup-step .dot{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#ffffff1a}.signup-step.active .dot{background:var(--blue);color:#062033}.signup-step.done .dot{background:var(--green);color:#062033}.signup-step-line{flex:1;height:2px;background:#ffffff1f}.signup-step-line.active{background:var(--green)}.signup-trial{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:16px;background:#7ed9571f;border:1px solid rgba(126,217,87,.35);color:#e2e8f0}.signup-trial input{margin-top:4px}.signup-trial strong,.signup-trial small{display:block}.signup-trial small{margin-top:4px;color:#cbd5e1}.signup-trial-points{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;color:#cbd5e1;font-size:13px}.signup-form,.signup-payment{margin-top:20px;display:grid;gap:14px}.signup-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.signup-type{display:grid;grid-template-columns:1fr 1fr;gap:8px}.signup-type-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#cbd5e1;font-weight:600;cursor:pointer}.signup-type-btn .icon{width:16px;height:16px}.signup-type-btn.active{border-color:#7ed9578c;background:#7ed95729;color:#fff}.signup-form .field span,.signup-payment .field span{color:#cbd5e1}.signup-form input,.signup-form select,.signup-form textarea{background:var(--navy-2);border-color:#ffffff1a;color:#fff}.signup-form textarea{min-height:84px;resize:vertical}.signup-form select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23cbd5e1' 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 14px center;background-size:16px 16px;padding-right:40px}.signup-count{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:center}.signup-count .count-btn{height:44px;display:inline-flex;align-items:center;justify-content:center;color:#e2e8f0;border-color:#ffffff1f;background:#ffffff0d}.signup-error{border:1px solid rgba(248,113,113,.25);background:#ef44441f;color:#fecaca;border-radius:16px;padding:12px 16px;font-size:14px;margin:0}.signup-submit{width:100%;margin-top:4px;border:0;border-radius:16px;padding:14px;font-weight:700;color:#062033;cursor:pointer;background:linear-gradient(90deg,var(--blue),var(--green-dark))}.signup-submit:disabled{opacity:.65;cursor:not-allowed}.signup-pay{background:linear-gradient(90deg,var(--green),var(--green-dark))}.signup-actions{display:flex;gap:12px;align-items:stretch}.signup-actions .signup-submit{flex:1;margin-top:0}.signup-back{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;min-width:132px;padding:14px 18px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#ffffff14;color:#f8fafc;font-weight:700;font-size:14px;cursor:pointer}.signup-back:hover{background:#ffffff24;border-color:#ffffff47}.signup-back:focus-visible{outline:2px solid #fff;outline-offset:2px}.signup-summary{border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:18px;padding:16px;display:grid;gap:10px}.signup-summary h2{margin:0 0 4px;font-size:16px;color:#e2e8f0}.summary-row{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:#94a3b8}.summary-row strong{color:#f8fafc;text-align:right}.summary-row.discount strong{color:var(--green)}.summary-row.total{border-top:1px solid rgba(255,255,255,.1);padding-top:10px;margin-top:4px;font-size:16px}.summary-row.total strong{color:var(--blue)}.signup-footer{margin:18px 0 0;text-align:center;font-size:13px;color:#94a3b8}.signup-footer a{color:#fff;font-weight:700;margin-left:4px}.payment-return{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:16px;padding:32px;text-align:center;color:#e2e8f0}.payment-return p{margin:0;color:#cbd5e1}@media(max-width:640px){.signup-locale{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}.signup-wrap{align-items:flex-start;padding:calc(64px + env(safe-area-inset-top,0px)) 12px calc(24px + env(safe-area-inset-bottom,0px))}.signup-card{padding:18px 14px;border-radius:20px}.signup-card h1{font-size:22px}.signup-steps{flex-wrap:wrap;gap:8px}.signup-step{font-size:12px}.signup-row,.signup-type{grid-template-columns:1fr}.signup-type-btn{height:42px;font-size:13px}.signup-form input,.signup-form select,.signup-form textarea{font-size:16px}.signup-actions{flex-direction:column}.signup-back,.signup-actions .signup-submit{width:100%;min-width:0}.summary-row{flex-direction:column;align-items:flex-start;gap:4px}.summary-row strong{text-align:left;word-break:break-word}}.dash{--dash-gap: 16px;--dash-radius: 14px;--dash-border: 1px solid rgba(15, 23, 42, .08);--dash-surface: var(--white);max-width:1280px;min-width:0;width:100%;overflow-x:hidden}.dash-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}.dash-header h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1.15}.dash-header .sub{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.4}.dash-header-meta{display:flex;align-items:center;gap:14px;flex-shrink:0}.dash-manual-top{white-space:nowrap;padding:10px 16px;font-size:13px;border-radius:10px}.dash-date{margin:8px 0 0;font-size:12px;font-weight:500;color:#94a3b8}.stat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.dash-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#047857}.dash-live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-dark);box-shadow:0 0 0 3px #2bb6732e;animation:dash-pulse 2s ease-in-out infinite}.dash-updated{font-size:12px;color:#94a3b8}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--dash-surface);border:var(--dash-border);border-radius:var(--dash-radius);overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.stat-card{position:relative;background:transparent;border:0;border-radius:0;padding:18px 20px 16px;text-align:left;font:inherit;color:inherit;box-shadow:none}.stat-card+.stat-card{border-left:var(--dash-border)}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:0;background:var(--green-dark);opacity:.9}.stat-card.late:before{background:#d97706}.stat-card.leave:before{background:#0284c7}.stat-card.absent:before{background:#e11d48}.stat-card.clickable{cursor:pointer;transition:background .15s ease}.stat-card.clickable:hover{background:#f8fafc}.stat-card.clickable:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;z-index:1}.stat-card span{display:block;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.01em}.stat-card strong{display:block;margin-top:8px;font-size:28px;font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--ink)}.stat-card strong small{margin-left:2px;font-size:14px;font-weight:600;letter-spacing:-.02em;color:#94a3b8}@keyframes dash-pulse{0%,to{opacity:1}50%{opacity:.45}}.dash-main-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--dash-gap);margin-top:var(--dash-gap);align-items:stretch;min-width:0}.dash-panel{min-width:0;max-width:100%;background:var(--dash-surface);border:var(--dash-border);border-radius:var(--dash-radius);padding:16px 18px;box-shadow:0 1px 2px #0f172a0a;overflow:hidden}.dash-panel h3{margin:0;font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.dash-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.dash-expand{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.dash-expand:hover{color:var(--ink);background:#f1f5f9;border-color:var(--line)}.dash-expand:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.dash-expand-icon{width:16px;height:16px}.dash-muted{margin:0 0 10px;color:var(--muted);font-size:12px}.dash-plan{grid-column:1 / -1;min-width:0;min-height:0}.dash-requests,.dash-notifications{min-height:0;min-width:0;display:flex;flex-direction:column;height:100%}.dash-requests .dash-tabs,.dash-notifications .dash-panel-head,.dash-requests .dash-panel-head{flex-shrink:0}.dash-requests .dash-req-list,.dash-notifications .dash-notif-list{flex:1 1 auto;display:flex;flex-direction:column;min-height:160px;max-height:none;overflow:auto}.dash-requests .dash-empty-block,.dash-notifications .dash-empty-block{flex:1 1 auto;min-height:120px;margin-top:auto}.dash-plan-table-wrap{overflow-x:auto;overflow-y:auto;max-height:340px;max-width:100%;min-width:0;border-radius:10px;-webkit-overflow-scrolling:touch}.dash-plan-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:12px}.dash-plan-table th,.dash-plan-table td{padding:6px;border-bottom:1px solid #f1f5f9;white-space:nowrap;text-align:center;vertical-align:middle}.dash-plan-table th{position:sticky;top:0;background:#fafbfc;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;z-index:1}.dash-plan-table th:first-child,.dash-plan-table td:first-child{text-align:left;font-weight:600;color:var(--ink)}.dash-plan-table tbody tr:hover td{background:#f8fafc}.dash-tabs{display:flex;gap:2px;padding:3px;margin-bottom:14px;background:#f1f5f9;border-radius:10px;border-bottom:0;flex-wrap:wrap;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.dash-tab{flex:1 1 auto;min-width:0;border:0;background:transparent;padding:8px 10px;font:inherit;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:8px;border-bottom:0;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.dash-tab:hover{color:var(--ink)}.dash-tab.active{color:var(--ink);background:var(--white);box-shadow:0 1px 2px #0f172a14;border-bottom-color:transparent}.dash-req-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow:auto}.dash-req-head,.dash-req-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.8fr);gap:8px;align-items:center;font-size:12px;min-width:0}.dash-req-head{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:0 10px 8px}.dash-req-row{border:0;background:transparent;text-align:left;font:inherit;padding:10px;border-radius:10px;cursor:pointer;border-left:3px solid #f59e0b;border-right:0;transition:background .12s ease}.dash-req-row:hover{background:#f8fafc}.dash-req-row.ok{border-left-color:#10b981}.dash-req-row.bad{border-left-color:#ef4444}.dash-req-row.pending{border-left-color:#f59e0b}.dash-req-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-req-row span:first-child{font-weight:600;color:var(--ink)}.dash-notif-actions{display:flex;align-items:center;gap:8px}.dash-search{width:160px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font:inherit;font-size:13px;background:#fafbfc;transition:border-color .15s ease,background .15s ease}.dash-search:focus{outline:none;border-color:#93c5fd;background:var(--white)}.dash-notif-list{display:flex;flex-direction:column;gap:0;max-height:220px;overflow:auto}.dash-notif-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 4px;border-bottom:1px solid #f1f5f9}.dash-notif-item:last-child{border-bottom:0}.dash-notif-item strong{display:block;font-size:13px;font-weight:650;color:var(--ink)}.dash-notif-item p{margin:4px 0 0;font-size:12px;color:var(--muted);line-height:1.45}.dash-notif-item em{display:inline-block;margin-top:6px;font-style:normal;font-size:11px;font-weight:600;color:#0369a1;background:#f0f9ff;padding:2px 8px;border-radius:6px}.dash-lists-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:var(--dash-gap);background:var(--dash-surface);border:var(--dash-border);border-radius:var(--dash-radius);overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.dash-list-panel{cursor:pointer;padding:16px 18px;border-radius:0;box-shadow:none;background:transparent;transition:background .15s ease;min-height:140px}.dash-list-panel+.dash-list-panel{border-left:var(--dash-border)}.dash-list-panel:hover{transform:none;background:#f8fafc}.dash-list-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #f1f5f9}.dash-list-head h3{margin:0;font-size:13px;font-weight:700}.dash-list-head span{font-size:11px;font-weight:700;color:var(--muted);background:#f1f5f9;padding:2px 8px;border-radius:999px}.dash-row{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-top:0;font-size:12px;color:var(--ink)}.dash-row+.dash-row{border-top:1px solid #f8fafc}.dash-row span:last-child{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}.dash-modal-list{max-height:420px;overflow:auto}.dash-approval p{margin:0 0 10px;font-size:14px}.dash-empty{margin:8px 0 0;color:#94a3b8;font-size:12px;line-height:1.45}.dash-empty-block{display:flex;align-items:center;justify-content:center;min-height:72px;margin:4px 0 0;padding:16px;border-radius:10px;background:#f8fafc;color:#94a3b8;font-size:12px;text-align:center}.dash-error{background:#fff1f2;color:#be123c;border-radius:12px;padding:12px 16px;font-size:13px;border:1px solid #fecdd3}.skel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:var(--dash-border);border-radius:var(--dash-radius);overflow:hidden;background:var(--white)}.skel{height:96px;background:linear-gradient(90deg,#f8fafc 25%,#f1f5f9,#f8fafc 75%);background-size:200% 100%;animation:dash-skel 1.2s ease-in-out infinite;border-radius:0}.skel+.skel{border-left:var(--dash-border)}@keyframes dash-skel{0%{background-position:100% 0}to{background-position:-100% 0}}@media(max-width:1100px){.stat-grid,.skel-grid,.dash-lists-grid{grid-template-columns:1fr 1fr}.stat-card:nth-child(3),.stat-card:nth-child(4),.skel:nth-child(3),.skel:nth-child(4),.dash-list-panel:nth-child(3),.dash-list-panel:nth-child(4){border-top:var(--dash-border)}.stat-card:nth-child(odd),.skel:nth-child(odd),.dash-list-panel:nth-child(odd){border-left:0}.stat-card:nth-child(2n),.skel:nth-child(2n),.dash-list-panel:nth-child(2n){border-left:var(--dash-border)}.dash-main-grid{grid-template-columns:1fr}.dash-plan{grid-column:auto}}@media(max-width:640px){.dash-panel{padding:14px 12px}.dash-tabs{flex-direction:column}.dash-tab{width:100%;text-align:center}.dash-header,.dash-header-meta{flex-direction:column;align-items:stretch}.dash-manual-top{width:100%;justify-content:center}.stat-toolbar{margin-bottom:10px}.stat-grid,.skel-grid,.dash-lists-grid{grid-template-columns:1fr}.stat-card+.stat-card,.skel+.skel,.dash-list-panel+.dash-list-panel{border-left:0;border-top:var(--dash-border)}.dash-notif-actions{flex-direction:column;align-items:stretch}.dash-search{width:100%}}.coming-soon{max-width:640px;margin:40px auto;text-align:center;background:var(--white);border-radius:28px;padding:64px 32px;box-shadow:var(--shadow)}.coming-soon b{display:block;color:var(--blue);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.coming-soon h2{margin:12px 0 0}.coming-soon p{color:var(--muted);font-size:14px}.support-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.support-item h3{margin:0 0 8px}.support-item p,.support-item a{margin:0;color:var(--muted)}.report-filters{display:flex;gap:12px;align-items:end;margin-bottom:16px;flex-wrap:wrap}.report-status{margin:8px 0 16px;color:var(--muted);font-size:14px}.report-matrix-wrap{overflow-x:auto;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}.report-matrix{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.report-matrix th,.report-matrix td{padding:8px 6px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;white-space:nowrap;vertical-align:middle}.report-matrix thead th{background:#f1f5f9;color:var(--ink);font-weight:700;font-size:11px;position:sticky;top:0;z-index:2}.report-matrix__sticky{position:sticky;left:0;z-index:3;background:var(--white);text-align:left!important;min-width:180px;max-width:240px;padding-left:12px!important;padding-right:12px!important;box-shadow:2px 0 0 var(--line)}.report-matrix thead .report-matrix__sticky{z-index:4;background:#f1f5f9}.report-matrix__employee{font-weight:600;color:var(--ink)}.report-matrix__day{min-width:42px;width:42px}.report-matrix__sum,.report-matrix__sum-cell{min-width:72px;font-weight:600;background:#fafbfc}.report-matrix__cell{min-width:42px;width:42px}.report-cell--work{background:#f8fafc}.report-cell--weekend,.report-cell--weekend-work{background:#fef3c7;color:#92400e}.report-cell--leave{background:#ede9fe;color:#5b21b6}.report-cell--holiday{background:#e2e8f0;color:#475569}.report-cell--other{background:#ccfbf1;color:#0f766e}.report-cell--over{color:#15803d;font-weight:700}.report-cell--under{color:#be123c;font-weight:700}.account-grid{display:grid;gap:12px}.account-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.account-row strong{text-align:right;word-break:break-word}.account-card{margin-bottom:16px}.account-banner{margin-bottom:16px;border:1px solid #bbf7d0;background:#f0fdf4}.account-banner.danger{border-color:#fecdd3;background:#fff1f2}.account-banner strong{display:block;margin-bottom:6px}.account-banner p{margin:0 0 12px;color:var(--muted)}.account-banner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.cancel-trial-warn p{margin:0 0 10px;color:var(--ink)}.cancel-trial-warn ul{margin:0 0 14px;padding-left:18px;color:var(--muted)}.cancel-trial-warn li{margin-bottom:8px}.cancel-trial-check{display:flex;align-items:flex-start;gap:10px;margin:0 0 8px;color:var(--ink);font-size:13px;line-height:1.45;cursor:pointer}.cancel-trial-check input{margin-top:3px;flex-shrink:0}.account-card h3{margin:0 0 12px;font-size:16px}.account-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.account-section-head h3{margin:0}.add-user-modal{display:grid;gap:14px}.add-user-stepper{display:flex;align-items:center;justify-content:center;gap:16px}.add-user-count{font-size:22px;color:var(--green, #16a34a)}.phone-row{display:flex;gap:8px}.phone-row .country-code{width:110px;flex-shrink:0}.phone-row input{flex:1}.checkbox-field{display:flex;align-items:center;gap:10px}.checkbox-field input{width:auto}.maps-actions{display:flex;gap:8px}.map-embed{border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:220px}.map-embed iframe{width:100%;height:220px;border:0}.map-picker-wrap{min-width:0}.map-picker{display:grid;gap:10px}.map-picker-search{position:relative}.map-picker-search-row{display:flex;gap:8px}.map-picker-search-row input{flex:1}.map-picker-suggestions{position:absolute;left:0;right:0;top:calc(100% - 2px);z-index:80;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:220px;overflow:auto}.map-picker-suggestions button{width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink)}.map-picker-suggestions button:hover{background:#f1f5f9}.map-picker-canvas{width:100%;min-height:280px;height:280px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#e2e8f0}.map-picker-hint{margin:0;font-size:13px;color:var(--muted)}.map-picker-hint.error{color:#b91c1c}.pac-container{z-index:10000!important}.unique-key-box{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;background:#f8fafc;border-radius:12px;border:1px solid var(--line)}.unique-key-box code{word-break:break-all}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.plan-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;text-align:left;cursor:pointer;display:grid;gap:6px}.plan-card.active{border-color:var(--blue);background:#f0f9ff}.choose-plan-modal{display:grid;gap:12px;width:max-content;max-width:100%}.choose-plan-modal .hint,.choose-plan-modal .upgrade-box{max-width:100%}.choose-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,180px);width:max-content;max-width:100%;margin-bottom:0}.choose-plan-grid .plan-card.active{border-color:#16a34a;background:#f0fdf4;box-shadow:inset 0 0 0 1px #16a34a}.plan-card-badge{display:inline-flex;width:fit-content;border-radius:999px;padding:2px 8px;background:#16a34a;color:#fff;font-size:11px;font-weight:700}.plan-card span,.plan-card small{color:var(--muted);font-size:13px}.plan-card .plan-card-badge{color:#fff;font-size:11px}.upgrade-box{display:grid;gap:12px;max-width:420px}.payment-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#07111f80;display:flex;align-items:center;justify-content:center;padding:16px}.payment-card{position:relative;width:min(560px,100%);height:min(90vh,820px);background:#fff;border-radius:20px;padding:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow)}.payment-head{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;margin-bottom:12px}.payment-head h3{margin:0}.payment-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;padding:0;border:0;border-radius:999px;background:#f1f5f9;color:#0f172a;cursor:pointer}.payment-close:hover{background:#e2e8f0}.payment-frame{position:relative;z-index:1;flex:1;width:100%;min-height:0;border:0;border-radius:12px;background:#f8fafc}.payment-empty{color:var(--muted);text-align:center;margin:auto}@media(max-width:720px){.support-grid{grid-template-columns:1fr}.account-row{flex-direction:column;align-items:flex-start;gap:4px}.account-row strong{text-align:left}.account-section-head,.account-banner-actions{flex-direction:column;align-items:stretch}.account-section-head .btn,.account-banner-actions .btn{width:100%}.choose-plan-modal,.choose-plan-grid,.upgrade-box{width:100%;max-width:100%}.choose-plan-grid{grid-template-columns:1fr}.payment-backdrop{padding:8px;align-items:stretch}.payment-card{width:100%;height:min(92svh,820px);padding:12px;border-radius:16px}}.requests-page{display:grid;gap:16px}.requests-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.requests-tab{border:0;background:transparent;padding:10px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}.requests-tab.active{color:var(--ink);border-bottom-color:var(--blue)}.requests-panel{padding:16px}.requests-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.requests-toolbar h3{margin:0;font-size:15px}.requests-list{display:flex;flex-direction:column;gap:2px}.requests-list-head,.requests-row{display:grid;gap:8px;align-items:center;font-size:12px;padding:8px 10px}.requests-list-head{color:var(--muted);font-weight:700}.requests-row{border:0;background:transparent;text-align:left;font:inherit;border-radius:10px;cursor:pointer;border-right:4px solid #f59e0b}.requests-row:hover{background:#f8fafc}.requests-row.ok{border-right-color:#10b981}.requests-row.bad{border-right-color:#ef4444}.requests-row.pending{border-right-color:#f59e0b}.requests-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.requests-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.requests-filters input,.requests-filters select{min-width:140px;flex:1}.leave-cols{grid-template-columns:.6fr 1.2fr 1fr .9fr .9fr .8fr auto}.event-cols{grid-template-columns:.6fr 1.1fr 1fr 1fr 1fr .8fr auto}.employee-cols{grid-template-columns:.6fr 1.1fr 1fr 1.2fr .8fr .9fr auto}.requests-detail{display:grid;gap:8px}.requests-detail p{margin:0;font-size:14px}.badge.ok{background:#ecfdf5;color:#047857}.badge.bad{background:#fff1f2;color:#be123c}@media(max-width:960px){.leave-cols,.event-cols,.employee-cols{grid-template-columns:1fr 1fr}.requests-list-head{display:none}.requests-row span:nth-child(n+3){grid-column:1 / -1}}.roles-form,.shifts-form{display:grid;gap:16px}.muted{margin:0;color:var(--muted);font-size:13px}.permission-matrix h4,.shift-days h4{margin:0 0 6px;font-size:15px}.permission-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}@media(max-width:720px){.permission-head{flex-direction:column}}.permission-tools{display:flex;gap:4px;flex-shrink:0}.permission-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.permission-toolbar input{flex:1;min-width:200px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.permission-filters{display:flex;flex-wrap:wrap;gap:6px}.chip-filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}.chip-filter.active{background:#0f172a;border-color:#0f172a;color:#fff}.permission-groups{display:grid;gap:10px;max-height:min(52vh,480px);overflow:auto;padding-right:4px}.permission-group{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.permission-group summary{list-style:none;cursor:pointer;padding:10px 12px;background:#f8fafc}.permission-group[open] summary{border-bottom:1px solid var(--line)}.permission-group summary::-webkit-details-marker{display:none}.permission-group-toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.permission-chevron{margin-left:auto;width:8px;height:8px;border-right:2px solid #94a3b8;border-bottom:2px solid #94a3b8;transform:rotate(45deg);transition:transform .15s ease}.permission-group[open] .permission-chevron{transform:rotate(-135deg);margin-top:4px}.permission-group-copy{display:flex;flex-direction:column;gap:2px}.permission-group-copy small{color:var(--muted);font-weight:500}.permission-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 12px;padding:12px}.permission-action{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--ink);cursor:pointer}.permission-action span{display:flex;flex-direction:column;gap:2px;line-height:1.35}.permission-action em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--muted)}.permission-action.kind-view em{color:#0369a1}.permission-action.kind-add em{color:#15803d}.permission-action.kind-edit em{color:#a16207}.permission-action.kind-delete em{color:#be123c}.permission-action.kind-decide em{color:#6d28d9}.shift-days-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.shift-days-table{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}.shift-days-table th,.shift-days-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.shift-days-table th{background:#f8fafc;font-weight:600}.shift-days-table tr:last-child td{border-bottom:0}.shift-days-table input[type=time],.shift-days-table input[type=number]{width:100%;max-width:140px;border:1px solid var(--line);border-radius:10px;padding:8px 10px}.shift-days-table input:disabled{opacity:.55;background:#f1f5f9}.off-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.panel{background:var(--white);border-radius:20px;box-shadow:var(--shadow);padding:16px}.panel h3{margin:0 0 12px;font-size:16px}.panel-toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.panel-toolbar input,.panel-toolbar select{border:1px solid var(--line);border-radius:10px;padding:8px 12px;min-width:160px}.check-list{max-height:420px;overflow:auto;display:grid;gap:8px}.check-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.check-item.active{border-color:var(--blue);background:#f0f9ff}.tabs{display:flex;gap:8px;margin-bottom:16px}.tab{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:8px 14px;cursor:pointer}.tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}.day-grid{overflow:auto}.day-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--white);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.day-table th,.day-table td{border:1px solid var(--line);padding:8px;text-align:center;min-width:72px}.day-table th:first-child,.day-table td:first-child{text-align:left;position:sticky;left:0;background:#fff;min-width:160px}.day-cell{cursor:pointer;border:0;width:100%;border-radius:8px;padding:10px 4px;font:inherit;transition:transform .12s ease,box-shadow .12s ease}.day-cell:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0f172a14}.day-cell.off{background:#fff1f2;color:#be123c}.day-cell.work{background:#ecfdf5;color:#047857}.day-cell.selected{outline:2px solid var(--blue);outline-offset:1px}.shift-legend{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.hint-inline{margin-left:4px;font-size:12px;color:var(--muted)}.legend.leave{background:#ffedd5;color:#9a3412}.legend.holiday{background:#e2e8f0;color:#334155}.shift-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}.mode-toggle{display:flex;gap:8px}.legend{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.legend.work{background:#ecfdf5;color:#047857}.legend.off{background:#fff1f2;color:#be123c}.employee-cell{display:grid;gap:2px;text-align:left}.employee-cell small{color:var(--muted)}.hint{color:var(--muted);font-size:13px;margin:0 0 12px}.badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.badge.paid{background:#ecfdf5;color:#047857}.badge.unpaid{background:#fff1f2;color:#be123c}.badge.pending{background:#fffbeb;color:#b45309}@media(max-width:960px){.two-col,.form-grid{grid-template-columns:1fr}}.sp-day-cell{display:flex;align-items:center;justify-content:center;min-height:36px;min-width:88px;padding:4px 6px;border-radius:6px;background:#fff;transition:background .12s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none}.sp-day-cell.compact{min-height:30px;min-width:72px;padding:2px 4px;font-size:11px}.sp-day-cell.editable{cursor:default}.sp-day-cell.type-work{background:#fff;color:var(--ink)}.sp-day-cell.type-off{background:#fecaca;color:#991b1b;font-weight:600}.sp-day-cell.type-off.hovering{background:#fff}.sp-day-cell.type-leave{background:#fdba74;color:#9a3412;font-weight:600}.sp-day-cell.type-holiday{background:#cbd5e1;color:#334155;font-weight:600}.sp-day-cell.hovering{box-shadow:inset 0 0 0 1px #0f172a14}.sp-day-label{white-space:nowrap;line-height:1.2}.sp-day-actions{display:inline-flex;align-items:center;justify-content:center;gap:2px}.sp-day-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:999px;background:transparent;cursor:pointer;transition:background .12s ease,transform .12s ease}.sp-day-btn:hover{background:#f1f5f9;transform:scale(1.06)}.sp-day-btn.add{color:#ea580c}.sp-day-btn.change{color:#0284c7}.sp-day-btn.remove{color:#e11d48}.sp-day-icon{width:18px;height:18px}.sp-day-cell.compact .sp-day-btn{width:22px;height:22px}.sp-day-cell.compact .sp-day-icon{width:15px;height:15px}.sp-shift-options{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto}.sp-shift-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.sp-shift-option strong{display:block;font-size:13px}.sp-shift-option span{display:block;margin-top:2px;font-size:12px;color:var(--muted)}.sp-confirm-text{margin:0;font-size:14px;color:var(--ink);line-height:1.45}
