:root{--bg: #f4f6fa;--surface: #fff;--text: #1b2333;--muted: #6b7587;--border: #e3e8f0;--primary: #5b3df5;--primary-dark: #4527d9;--primary-soft: #eeeaff;--sidebar: #131a2c;--sidebar-text: #aab3c8;--green: #12a05c;--green-soft: #e3f7ec;--red: #d92d4a;--red-soft: #fde8ec;--amber: #c27803;--amber-soft: #fff3d6;--blue: #2563eb;--blue-soft: #e4edff;--purple: #7c3aed;--purple-soft: #f0e8ff;--gray-soft: #eef0f4;--radius: 12px;--shadow: 0 1px 2px rgba(16,24,40,.05), 0 4px 14px rgba(16,24,40,.05);font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14.5px;line-height:1.5}h1,h2,h3,h4{font-family:Poppins,Inter,sans-serif;margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:12.5px}.num{text-align:right;font-variant-numeric:tabular-nums}.text-red{color:var(--red)}.text-green{color:var(--green)}.push-right{margin-left:auto}input,select,textarea{font:inherit;color:inherit;width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}input[type=checkbox]{width:auto}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field-label{font-weight:600;font-size:13px}.field-hint{color:var(--muted);font-size:12px}.field-error{color:var(--red);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid .full{grid-column:1 / -1}.check{display:flex;align-items:center;gap:8px;padding:5px 0;cursor:pointer}.check code{color:var(--muted);font-size:11.5px;margin-left:auto}.inline-fields{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 12px}.inline-fields input,.inline-fields select{width:auto}.inline-label{display:flex;align-items:center;gap:6px;color:var(--muted)}.inline-label input{width:auto}.btn{font:inherit;font-weight:600;padding:9px 16px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}.btn:hover{background:#f7f8fb;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-success{background:var(--green);border-color:var(--green);color:#fff}.btn-success:hover{background:#0e8a4e}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger:hover{background:#b71f39}.btn-danger-outline{color:var(--red);border-color:#f3c0c9}.btn-danger-outline:hover{background:var(--red-soft)}.btn-ghost{background:transparent;color:#fff;border-color:#ffffff80}.btn-ghost:hover{background:#ffffff1f}.btn-sm{padding:5px 11px;font-size:13px}.btn-block{width:100%;justify-content:center}.icon-btn{background:none;border:0;cursor:pointer;font-size:16px;padding:6px;color:var(--muted);border-radius:6px}.icon-btn:hover{background:var(--gray-soft)}.icon-btn.light{color:var(--sidebar-text)}.icon-btn.light:hover{background:#ffffff1a}.shell{display:flex;min-height:100vh}.sidebar{width:252px;background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{display:flex;align-items:center;gap:10px;padding:22px 20px;font-family:Poppins;font-weight:700;font-size:18px;color:#fff;cursor:pointer;text-decoration:none}.brand-mark{background:var(--primary);color:#fff;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:13px}.sidebar nav{flex:1;padding:6px 12px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;color:var(--sidebar-text);margin-bottom:2px;font-weight:500}.nav-item:hover{background:#ffffff12;color:#fff;text-decoration:none}.nav-item.active{background:var(--primary);color:#fff}.nav-icon{width:20px;text-align:center}.sidebar-foot{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.08)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700;flex-shrink:0}.who{display:flex;flex-direction:column;min-width:0;flex:1}.who strong{color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who span{font-size:12px}.content{flex:1;min-width:0}.topbar{display:none;align-items:center;gap:12px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--border)}.page{padding:28px 32px 60px;max-width:1500px}.scrim{display:none}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-header h1{font-size:24px}.page-header p{margin:4px 0 0}.page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.page-actions select{width:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px;flex-wrap:wrap}.card-head h3{font-size:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;border-left:4px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column}.stat-label{color:var(--muted);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.stat-value{font-size:24px;font-family:Poppins;margin-top:4px}.stat-hint{color:var(--muted);font-size:12px}.stat.green{border-left-color:var(--green)}.stat.red{border-left-color:var(--red)}.stat.amber{border-left-color:var(--amber)}.stat.blue{border-left-color:var(--blue)}.stat.purple{border-left-color:var(--purple)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid-2>.card{margin-bottom:20px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.table th.num{text-align:right}.table td{padding:12px;border-bottom:1px solid #eef1f6;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table.clickable tbody tr{cursor:pointer}.table.clickable tbody tr:hover{background:#f8f9fd}.table td input,.table td select{padding:6px 8px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.list{list-style:none;margin:0;padding:0}.list-row{display:flex;justify-content:space-between;gap:12px;padding:11px 6px;border-bottom:1px solid #eef1f6;cursor:pointer;border-radius:6px}.list-row:hover{background:#f8f9fd}.list-row:last-child{border-bottom:0}.row-right{display:flex;align-items:center;gap:10px;white-space:nowrap}.filters,.toolbar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.filters input,.filters select{width:auto;min-width:190px}.toolbar{justify-content:space-between}.empty{text-align:center;color:var(--muted);padding:34px 10px}.tick{color:var(--green);font-weight:700}.pager{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:16px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge-gray{background:var(--gray-soft);color:#4b5565}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-purple{background:var(--purple-soft);color:var(--purple)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f16288c;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:14px;width:100%;max-width:480px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-wide{max-width:760px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:17px}.modal-body{padding:22px;overflow-y:auto}.modal-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.alert{padding:11px 14px;border-radius:8px;margin-bottom:14px}.alert-error{background:var(--red-soft);color:#9d1c33;border:1px solid #f3c0c9}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:100}.toast{padding:12px 18px;border-radius:10px;color:#fff;box-shadow:var(--shadow);animation:slide .2s ease}.toast-success{background:#0f8a52}.toast-error{background:var(--red)}@keyframes slide{0%{transform:translateY(10px);opacity:0}}.spinner{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-pad{display:flex;justify-content:center;padding:60px 20px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.detail-grid>div{display:flex;flex-direction:column;gap:2px}.detail-grid .muted{font-size:12.5px}.note{background:#f8f9fd;border-left:3px solid var(--primary);padding:10px 14px;border-radius:6px;margin:16px 0;white-space:pre-wrap}.section-title{margin:22px 0 10px;font-size:15px}.action-row{display:flex;gap:10px;flex-wrap:wrap}.schedule-box{margin-top:16px;background:var(--purple-soft);border-radius:10px;padding:14px 16px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px;overflow-x:auto}.tab{background:none;border:0;padding:10px 18px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.cal-head{display:flex;align-items:center;gap:18px;margin-bottom:14px;flex-wrap:wrap}.cal-head h3{flex:1;font-size:18px}.cal-nav{display:flex;gap:6px}.legend{display:flex;gap:14px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-dow div{padding:8px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;text-align:center}.cal-cell{min-height:108px;border:1px solid #eef1f6;margin:-1px 0 0 -1px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}.cal-cell.blank{background:#fafbfd}.cal-cell.today{background:#f6f3ff}.cal-day{font-size:12px;font-weight:600;color:var(--muted)}.today .cal-day{background:var(--primary);color:#fff;width:22px;height:22px;border-radius:50%;display:grid;place-items:center}.cal-ev{border:0;text-align:left;font:inherit;font-size:11.5px;padding:3px 7px;border-radius:5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.cal-more{font-size:11px;color:var(--muted)}.ev-shoot{background:#0ea5e9}.ev-edit{background:#f59e0b}.ev-publish{background:#7c3aed}.bars{display:flex;align-items:flex-end;gap:10px;height:230px;padding-top:24px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}.bar{width:100%;max-width:46px;background:linear-gradient(180deg,var(--primary),#8c75ff);border-radius:6px 6px 0 0;min-height:2px}.bar-val{font-size:10.5px;color:var(--muted);margin-bottom:4px;white-space:nowrap}.bar-label{font-size:11.5px;color:var(--muted);margin-top:6px}.roles-layout{display:grid;grid-template-columns:250px 1fr;gap:20px;align-items:start}.role-list{padding:10px}.role-item{display:flex;flex-direction:column;width:100%;text-align:left;font:inherit;background:none;border:0;padding:10px 12px;border-radius:8px;cursor:pointer}.role-item:hover{background:#f4f6fa}.role-item.active{background:var(--primary-soft)}.perm-group{margin-top:18px}.perm-group h4{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:4px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{background:linear-gradient(145deg,#1b1250,#5b3df5);color:#fff;padding:40px 56px;display:flex;flex-direction:column;justify-content:center;gap:12px;position:relative}.login-art .brand{position:absolute;top:20px;left:36px;padding:0}.login-art h2{font-size:36px;line-height:1.2;max-width:460px}.login-art p{opacity:.8;max-width:420px}.login-card{align-self:center;justify-self:center;width:100%;max-width:380px;padding:24px}.login-card h1{font-size:26px}.login-card .muted{margin:4px 0 22px}.back-link{display:block;text-align:center;margin-top:18px;color:var(--muted)}.site{background:#fff}.site-nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:0 40px;background:#131a2cf5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.site-nav .brand{padding:16px 0;cursor:default}.site-nav nav{display:flex;gap:26px;align-items:center}.site-nav nav a:not(.btn){color:#cbd2e3;font-weight:500}.hero{background:radial-gradient(1000px 500px at 80% 0,#5b3df5 0,transparent 60%),linear-gradient(160deg,#0f1428,#1b1250);color:#fff;padding:120px 40px 130px}.hero-inner{max-width:820px;margin:0 auto;text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12.5px;color:#b9aaff;font-weight:700}.hero h1{font-size:clamp(34px,6vw,62px);line-height:1.1;margin:16px 0}.hero p{font-size:18px;opacity:.85;max-width:640px;margin:0 auto 30px}.hero-cta{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:1000px;margin:-48px auto 0;background:#fff;border-radius:16px;box-shadow:0 10px 40px #10182826;position:relative}.strip div{padding:26px;text-align:center;display:flex;flex-direction:column}.strip strong{font-family:Poppins;font-size:20px;color:var(--primary)}.strip span{color:var(--muted)}.section{max-width:1150px;margin:0 auto;padding:90px 28px 40px;text-align:center}.section.alt{max-width:none;background:#f6f7fb;padding-bottom:80px;margin-top:50px}.section.alt>*{max-width:1150px;margin-left:auto;margin-right:auto}.section h2{font-size:34px}.section-sub{color:var(--muted);font-size:16px;margin:8px 0 40px}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;text-align:left}.service{padding:28px;border:1px solid var(--border);border-radius:16px;transition:.2s}.service:hover{transform:translateY(-4px);box-shadow:0 14px 34px #1018281a}.service-icon{font-size:30px;margin-bottom:12px}.service h3{font-size:18px;margin-bottom:6px}.service p{color:var(--muted);margin:0}.work{position:relative;border-radius:16px;min-height:260px;color:#fff;display:flex;align-items:flex-end;overflow:hidden;transition:.2s}.work:hover{transform:scale(1.02)}.work .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);width:64px;height:64px;border-radius:50%;background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;font-size:22px}.work-info{padding:20px;background:linear-gradient(transparent,#0000008c);width:100%}.work-info h3{font-size:18px;margin:6px 0 2px}.work-info p{margin:0;opacity:.85}.chip{background:#ffffff38;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;text-align:left}.step-no{width:40px;height:40px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:700;font-family:Poppins;margin-bottom:12px}.step p{color:var(--muted)}.contact{background:linear-gradient(160deg,#0f1428,#1b1250);color:#fff;max-width:none;margin-top:70px;padding-bottom:90px}.contact .section-sub{color:#b8bfd6}.contact-row{display:flex;justify-content:center;gap:36px;flex-wrap:wrap;font-size:17px}.contact-row a{color:#fff}.site-foot{background:#0b0f1f;color:#8590ab;text-align:center;padding:22px;font-size:13px}.site-foot a{color:#b9aaff}@media (max-width: 1024px){.sidebar{position:fixed;left:0;top:0;transform:translate(-100%);transition:.2s;z-index:40}.sidebar.open{transform:none}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:30}.topbar{display:flex}.page{padding:20px 18px 50px}.grid-2,.roles-layout,.login-wrap{grid-template-columns:1fr}.login-art{display:none}}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}.site-nav nav a:not(.btn){display:none}.site-nav{padding:0 18px}.cal-cell{min-height:74px}}@media print{.sidebar,.topbar,.page-actions,.filters{display:none!important}.page{padding:0}}
