:root{--text:#5a6377;--text-h:#0a0a0f;--bg:#f7f8fa;--surface:#fff;--border:#366483;--accent:#366483;--accent-hover:#2a4f68;--accent-light:#36648314;--accent-glow:#36648333;--danger:#c53030;--success:#276749;--radius:10px;--shadow-sm:0 1px 2px #0000000a;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 4px 16px #00000014, 0 2px 4px #0000000a;--transition:.16s ease;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--heading:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:15px/1.6 var(--sans);letter-spacing:.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:14px}}*,:before,:after{box-sizing:border-box}#root{flex-direction:column;width:100%;max-width:100%;min-height:100svh;display:flex}body{background:var(--bg);margin:0}h1,h2,h3,h4{font-family:var(--heading);color:var(--text-h);letter-spacing:-.02em;font-weight:600}h1{margin:0 0 8px;font-size:32px}h2{margin:0 0 8px;font-size:22px}h3{margin:0 0 4px;font-size:18px}p{margin:0}button,input[type=submit]{font-family:var(--sans);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-h);cursor:pointer;transition:all var(--transition);padding:8px 18px;font-size:13px;font-weight:500}button:hover{border-color:var(--accent-border,#8b5cf659);background:#f4f2f7}input[type=text],input[type=email],input[type=password],input[type=search],textarea,select{font-family:var(--sans);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition), box-shadow var(--transition);background:var(--surface);color:var(--text-h);outline:none;padding:9px 12px;font-size:14px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}textarea{resize:vertical}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px}.app-header{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--accent);z-index:100;background:#ffffffd9;align-items:center;gap:12px;height:56px;padding:0 28px;display:flex;position:fixed;top:0;left:0;right:0}.app-header.header-hidden{pointer-events:none;animation:.35s cubic-bezier(.22,1,.36,1) forwards headerSlideUp}@keyframes headerSlideUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}.app-logo-img{width:auto;height:28px}.header-subtitle{color:var(--text);text-transform:uppercase;letter-spacing:.04em;margin-top:1px;font-size:11px;font-weight:400;line-height:1}.header-admin-link{color:var(--accent);border:1px solid var(--accent);transition:all var(--transition);border-radius:8px;margin-right:12px;padding:6px 16px;font-size:13px;font-weight:500;text-decoration:none}.header-admin-link:hover{background:var(--accent-light)}.app-header nav a{transition:color var(--transition);font-size:14px;font-weight:500}.header-user{color:var(--text);cursor:pointer;transition:all var(--transition);border-radius:8px;padding:6px 14px;font-size:14px;font-weight:500;text-decoration:none}.header-user:hover{background:var(--accent-light);color:var(--accent)}.header-brand__title{letter-spacing:-.02em;color:var(--text-h);font-size:18px;font-weight:700;line-height:1.2}.header-brand__accent{color:var(--accent)}.header-brand__sub{letter-spacing:.04em;color:var(--text);text-transform:uppercase;font-size:11px;font-weight:400;line-height:1.3}table{border-collapse:separate;border-spacing:0;background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-sm);border:1px solid var(--border);overflow:hidden}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text);border-bottom:1px solid var(--border);background:#f9f8fb;padding:12px 16px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);padding:12px 16px;font-size:14px}tr:last-child td{border-bottom:none}tr:hover td{background:#8b5cf605}.admin-layout{flex:1;display:flex}.admin-layout>nav:first-child{background:var(--surface);border-right:1px solid var(--border);width:230px;min-height:calc(100vh - 56px);padding:24px 16px}.admin-layout>nav:first-child ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.admin-layout>nav:first-child a{border-radius:var(--radius);color:var(--text);transition:all var(--transition);padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;display:block}.admin-layout>nav:first-child a:hover{background:var(--accent-light);color:var(--accent)}.admin-layout>nav:first-child a.active{background:var(--accent-light);color:var(--accent);font-weight:600}.admin-layout>main:last-child{background:var(--bg);flex:1;padding:28px}.login-card{background:var(--surface);border:1px solid var(--border);max-width:400px;box-shadow:var(--shadow-lg);border-radius:14px;margin:120px auto 0;padding:36px 32px}.login-card h1{text-align:center;margin-bottom:24px;font-size:26px}.login-card input{width:100%;margin-bottom:14px}.login-card button[type=submit]{background:var(--accent);color:#fff;border:none;width:100%;padding:12px;font-size:15px;font-weight:600}.login-card button[type=submit]:hover{background:var(--accent-hover)}.block-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-h);box-shadow:var(--shadow-sm);transition:all var(--transition);padding:20px;text-decoration:none;display:block}.block-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent);transform:translateY(-1px)}.block-card h3{-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;min-height:39px;margin:0 0 4px;font-size:15px;line-height:1.3;display:-webkit-box;overflow:hidden}.sort-toggle{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);transition:all var(--transition);border-radius:20px;padding:7px 18px;font-size:13px;font-weight:500}.sort-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}.error-text{color:var(--danger);font-size:14px}.empty-text{color:var(--text);font-size:14px}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.fade-in{animation:.25s both fadeIn}.block-detail-header{animation:.22s cubic-bezier(.22,1,.36,1) both slideDown}.block-card{animation:.3s both fadeIn}.block-card:first-child{animation-delay:0s}.block-card:nth-child(2){animation-delay:30ms}.block-card:nth-child(3){animation-delay:60ms}.block-card:nth-child(4){animation-delay:90ms}.block-card:nth-child(5){animation-delay:.12s}.block-card:nth-child(6){animation-delay:.15s}.block-card:nth-child(7){animation-delay:.18s}.block-card:nth-child(8){animation-delay:.21s}.block-card:active{box-shadow:var(--shadow-sm);transform:scale(.97)}@keyframes routeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.dashboard-section{animation:.3s both fadeIn}.dashboard-section:nth-child(2){animation-delay:.1s}.admin-layout>nav:first-child a:active{transform:scale(.97)}button:active{transform:scale(.96)}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation:.2s both fade-out}::view-transition-new(root){animation:.25s cubic-bezier(.22,1,.36,1) both scaleIn}}@keyframes fade-out{to{opacity:0;transform:scale(.98)}}.block-detail-header{background:var(--accent);color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:8px 24px;display:flex;position:relative}.create-block-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:32px;padding:16px}.blocks-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.selection-toolbar{border-radius:var(--radius);background:var(--accent-light);border:1px solid var(--accent);align-items:center;gap:4px;padding:4px 8px;animation:.15s both fadeIn;display:flex}.tb-btn{width:34px;height:34px;color:var(--accent);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex}.tb-btn:hover{background:var(--accent-light)}.tb-btn.tb-delete:hover{color:var(--danger);background:#c530301a}.block-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.block-card-wrapper{border-radius:var(--radius);transition:box-shadow var(--transition);position:relative}.block-card-wrapper.selected .block-card{outline:3px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 6px var(--accent-glow)}.block-check{z-index:2;background:var(--surface);border:2px solid var(--border);cursor:pointer;opacity:0;width:22px;height:22px;transition:opacity var(--transition), border-color var(--transition);border-radius:5px;justify-content:center;align-items:center;display:flex;position:absolute;top:10px;right:10px}.block-card-wrapper:hover .block-check,.block-card-wrapper.selected .block-check{opacity:1}.block-card-wrapper.selected .block-check{border-color:var(--accent);background:var(--accent)}.block-check input{opacity:0;pointer-events:none;position:absolute}.block-card-wrapper.selected .block-check:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:11px;margin-top:-2px;display:block;transform:rotate(45deg)}.assign-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#00000059;justify-content:center;align-items:center;animation:.15s both fadeIn;display:flex;position:fixed;inset:0}.assign-modal{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;width:480px;max-width:95vw;max-height:80vh;animation:.2s both scaleIn;display:flex}.assign-modal-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.assign-modal-header h2{margin:0;font-size:20px}.modal-close{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:22px;display:flex}.modal-close:hover{background:#f0f0f0}.assign-tabs{border-bottom:1px solid var(--border);gap:0;padding:16px 24px 0;display:flex}.assign-tab{color:var(--text);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 20px;font-size:14px;font-weight:500;display:flex}.assign-tab:hover{color:var(--accent)}.assign-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.assign-modal-body{flex:1;max-height:50vh;padding:16px 24px;overflow-y:auto}.assign-list{flex-direction:column;gap:4px;display:flex}.assign-item{border-radius:var(--radius);cursor:pointer;transition:all var(--transition);align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.assign-item:hover{background:var(--accent-light)}.assign-item.checked{background:var(--accent-light);color:var(--accent);font-weight:500}.assign-item input{display:none}.assign-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px 20px;display:flex}.btn-primary{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.btn-primary:hover{background:var(--accent-hover)!important}.spinner{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
