*{box-sizing:border-box;margin:0}:root{--bg: #fdf3fa;--surface: #ffffff;--surface2: #fbecf6;--border: rgba(190, 120, 180, .16);--text: #4b3a55;--muted: #a08fae;--accent: #ec5f9e;--accent-2: #b58cf0;--accent-soft: rgba(236, 95, 158, .12);--danger: #ff6b81;--warning: #e8943a;--success: #2bba84;--info: #6aa0f5;--glass: rgba(255, 252, 254, .78);--shadow: 0 2px 10px rgba(220, 130, 185, .1), 0 10px 30px rgba(200, 130, 200, .08);--shadow-lg: 0 10px 24px rgba(220, 120, 180, .18), 0 24px 60px rgba(180, 120, 210, .16);--radius: 22px;--font-body: "Nunito", "Segoe UI", system-ui, sans-serif;--font-display: "Fredoka", "Nunito", sans-serif}[data-theme=dark]{--bg: #211a30;--surface: #2c2342;--surface2: #382c52;--border: rgba(255, 255, 255, .1);--text: #f3e9f7;--muted: #b4a4c6;--accent: #ff92cb;--accent-2: #c4a6ff;--accent-soft: rgba(255, 146, 203, .16);--danger: #ff8095;--warning: #ffc266;--success: #4dd49e;--info: #8fb6ff;--glass: rgba(42, 33, 62, .78);--shadow: 0 2px 12px rgba(0, 0, 0, .25), 0 12px 32px rgba(0, 0, 0, .22);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .4), 0 28px 60px rgba(0, 0, 0, .5)}html,body,#root{height:100%}body{font-family:var(--font-body);background:radial-gradient(1200px 600px at 110% -10%,rgba(181,140,240,.1),transparent),radial-gradient(1000px 500px at -10% 110%,rgba(236,95,158,.08),transparent),var(--bg);background-attachment:fixed;color:var(--text);font-size:14.5px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.2px}h1{font-size:27px}h2{font-size:19px}h3{font-size:16px}.app{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--glass);backdrop-filter:saturate(150%) blur(18px);-webkit-backdrop-filter:saturate(150%) blur(18px);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh;z-index:40}.sidebar .brand{font-family:var(--font-display);font-size:16px;font-weight:600;line-height:1.1;padding:4px 8px 20px;display:flex;gap:11px;align-items:center}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar nav a{padding:10px 14px;border-radius:16px;color:var(--text);font-weight:600;display:flex;align-items:center;gap:12px;font-size:14px;transition:background .18s ease,transform .12s ease}.sidebar nav a:hover{background:var(--surface2);transform:translate(2px)}.sidebar nav a.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 6px 16px #ec5f9e4d}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;padding:14px 28px;background:var(--glass);backdrop-filter:saturate(150%) blur(18px);-webkit-backdrop-filter:saturate(150%) blur(18px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.topbar .spacer{flex:1}.content{padding:30px 32px 50px;max-width:1280px;width:100%;margin:0 auto}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}.page-head .spacer{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card h2{margin-bottom:14px}.grid{display:grid;gap:18px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stat{display:flex;flex-direction:column;gap:3px}.stat .num{font-family:var(--font-display);font-size:34px;font-weight:600}.stat .label{color:var(--muted);font-size:13px;font-weight:600}button,.btn{font:inherit;font-weight:700;cursor:pointer;border:1.5px solid var(--border);background:var(--surface);color:var(--text);padding:9px 20px;border-radius:999px;font-size:14px;transition:transform .14s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,background .18s ease,opacity .18s ease}button:hover,.btn:hover{background:var(--surface2);transform:translateY(-1px)}button:active,.btn:active{transform:translateY(0) scale(.97)}button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;color:#fff;box-shadow:0 8px 18px #ec5f9e47}button.primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px #ec5f9e5c;opacity:1}button.danger{color:#fff;border-color:transparent;background:linear-gradient(135deg,#ff8aa3,var(--danger));box-shadow:0 6px 14px #ff6b8147}button.small{padding:6px 15px;font-size:13px}button.icon{padding:8px 11px}button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}input,select,textarea{font:inherit;color:var(--text);background:var(--surface2);border:1.5px solid transparent;border-radius:16px;padding:10px 15px;width:100%;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 4px var(--accent-soft)}input::placeholder,textarea::placeholder{color:var(--muted)}label{font-size:13px;font-weight:700;color:var(--muted);display:block;margin-bottom:6px}.field{margin-bottom:15px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>*{flex-shrink:0}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;padding:11px 13px;border-bottom:2px solid var(--border)}td{padding:12px 13px;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--surface2)}.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:11.5px;font-weight:800;white-space:nowrap}.badge.gray{background:var(--surface2);color:var(--muted)}.badge.green{background:#2bba8429;color:var(--success)}.badge.red{background:#ff6b8129;color:var(--danger)}.badge.amber{background:#e8943a2e;color:var(--warning)}.badge.blue{background:#6aa0f529;color:var(--info)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.avatar{width:32px;height:32px;border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800;flex-shrink:0;box-shadow:0 2px 6px #0000001f}.tabs{display:flex;gap:5px;background:var(--surface2);padding:5px;border-radius:999px;margin-bottom:22px;flex-wrap:wrap;width:fit-content;max-width:100%}.tabs button{border:none;background:none;border-radius:999px;padding:8px 18px;font-weight:700;color:var(--muted);font-size:13.5px}.tabs button:hover{color:var(--text);background:none;transform:none}.tabs button.active{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 5px 14px #ec5f9e4d}.loc-tabs{margin-bottom:14px}.tabs button .tab-count{margin-left:7px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:800;background:#00000017;color:inherit}.tabs button.active .tab-count{background:#ffffff52;color:#fff}.vault-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;align-items:start}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#50285057;z-index:100;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px}.modal{background:var(--surface);border-radius:28px;box-shadow:var(--shadow-lg);border:1px solid var(--border);width:100%;max-width:540px;max-height:86vh;overflow-y:auto;padding:28px}.modal h2{margin-bottom:16px;font-size:21px}.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.toast{position:fixed;bottom:26px;right:26px;z-index:200;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;padding:14px 22px;border-radius:18px;box-shadow:var(--shadow-lg);font-weight:700;max-width:360px;font-size:14px}.toast.error{background:linear-gradient(135deg,#ff8aa3,var(--danger))}.empty{color:var(--muted);text-align:center;padding:32px 10px;font-size:14px}.notif-panel{position:absolute;right:0;top:48px;width:352px;max-height:440px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg);z-index:50}.notif-item{padding:12px 16px;border-bottom:1px solid var(--border)}.notif-item:last-child{border-bottom:none}.notif-item.unread{background:var(--accent-soft)}.notif-item .time{font-size:11.5px;color:var(--muted)}.sched-grid{display:grid;grid-template-columns:170px repeat(7,minmax(118px,1fr));border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.sched-grid .head,.sched-grid .cell,.sched-grid .rowhead{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px;min-height:56px}.sched-grid .head{background:var(--surface2);font-weight:800;font-size:12.5px;text-align:center;min-height:0;color:var(--muted)}.sched-grid .rowhead{display:flex;gap:8px;align-items:center;font-weight:700;font-size:13px;background:var(--surface)}.sched-grid .cell{display:flex;flex-direction:column;gap:4px;transition:background .18s ease}.sched-grid .cell.droptarget{background:var(--accent-soft)}.shift-chip{border-radius:13px;padding:5px 9px;font-size:11.5px;font-weight:700;color:#fff;cursor:grab;line-height:1.3;transition:transform .12s ease}.shift-chip:hover{transform:scale(1.03)}.shift-chip .sub{font-weight:500;opacity:.9;font-size:10.5px}.shift-chip.draft{outline:2px dashed rgba(255,255,255,.7);outline-offset:-2px;opacity:.82}.unavail{font-size:10.5px;color:var(--muted);font-style:italic}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}.kanban .col{background:var(--surface2);border-radius:var(--radius);padding:14px}.kanban .col h3{padding:2px 8px 10px;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em;font-weight:800}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:13px 15px;margin-bottom:10px;cursor:pointer;box-shadow:var(--shadow);transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .16s ease}.task-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.task-card .title{font-weight:700;margin-bottom:5px}.task-card .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--muted)}.prio{width:9px;height:9px;border-radius:50%;display:inline-block}.prio.urgent{background:var(--danger)}.prio.high{background:var(--warning)}.prio.medium{background:var(--info)}.prio.low{background:var(--muted)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(700px 480px at 50% -10%,rgba(236,95,158,.18),transparent),radial-gradient(620px 420px at 90% 110%,rgba(181,140,240,.2),transparent),var(--bg)}.login-card{width:100%;max-width:410px;padding:36px 32px;border-radius:30px}.login-card .logo{text-align:center;margin-bottom:16px}.login-card h1{text-align:center;margin-bottom:24px;font-size:25px}.alert{padding:12px 16px;border-radius:16px;margin-bottom:14px;font-size:13.5px;font-weight:600}.alert.error{background:#ff6b8121;color:var(--danger)}.alert.info{background:#6aa0f51f;color:var(--info)}.alert.warn{background:#e8943a24;color:var(--warning)}.feed-item{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13.5px;align-items:center}.feed-item:last-child{border-bottom:none}.feed-item .time{color:var(--muted);font-size:11.5px}.quiz-q{margin-bottom:20px}.quiz-q .opts{display:flex;flex-direction:column;gap:8px;margin-top:9px}.quiz-q .opts label{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:600;color:var(--text);border:1.5px solid var(--border);padding:12px 15px;border-radius:16px;cursor:pointer;margin:0;transition:border-color .18s ease,background .18s ease}.quiz-q .opts label:hover{background:var(--surface2)}.quiz-q .opts label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.quiz-q .opts input{width:auto;accent-color:var(--accent)}.progress-bar{height:9px;background:var(--surface2);border-radius:999px;overflow:hidden}.progress-bar>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px;transition:width .3s ease}.chat-layout{display:grid;grid-template-columns:300px 1fr;gap:18px;height:calc(100vh - 170px);min-height:420px}.chat-list{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.chat-channel{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:none;background:none;padding:11px 12px;border-radius:16px;font-weight:700}.chat-channel.active{background:var(--accent-soft);transform:none}.chat-channel:hover{background:var(--surface2);transform:none}.chat-channel.active:hover{background:var(--accent-soft)}.chat-icon{width:38px;height:38px;border-radius:14px;background:var(--surface2);display:inline-flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.chat-channel-info{flex:1;min-width:0;display:flex;flex-direction:column}.chat-preview{font-size:11.5px;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-thread{display:flex;flex-direction:column;padding:0;overflow:hidden}.chat-thread-head{padding:15px 18px;border-bottom:1px solid var(--border);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.chat-messages{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:7px}.msg-row{display:flex;gap:8px;align-items:flex-end}.msg-row.mine{justify-content:flex-end}.msg-bubble{background:var(--surface2);border-radius:20px 20px 20px 7px;padding:9px 14px;max-width:68%;font-size:14px}.msg-bubble.mine{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-radius:20px 20px 7px}.msg-author{font-size:11.5px;font-weight:800;color:var(--accent);margin-bottom:2px}.msg-bubble.mine .msg-time{color:#ffffffc7}.msg-time{font-size:10px;color:var(--muted);text-align:right;margin-top:2px}.chat-input{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--border)}.chat-input input{border-radius:999px}@media (max-width: 900px){.chat-layout{grid-template-columns:1fr;height:auto}.chat-thread{min-height:60vh}.sidebar{position:fixed;left:-260px;transition:left .25s cubic-bezier(.4,0,.2,1);z-index:90}.sidebar.open{left:0}.kanban{grid-template-columns:1fr}.content{padding:16px}.menu-btn{display:inline-flex!important}}.menu-btn{display:none}
