:root{--color-bg: #ffffff;--color-text: #374151;--color-muted: #6b7280;--color-primary: #111111;--color-accent: #000000;--color-primary-light: #1f2937;--color-card-bg-1: #eef2ff;--color-card-bg-2: #fef3c7;--border-radius: .75rem;--shadow-light: rgba(0, 0, 0, .1);--font-headline: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-body: "Inter", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--transition-speed: .3s;--gradient-accent: linear-gradient( 90deg, #111111 0%, #444444 70%, #111111 100% );--danger: #dc2626;--ok: #1f7a4c;--line: #e5e7eb}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);font-size:18px;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;scroll-behavior:smooth;overflow-x:hidden}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-speed) ease}a:hover,a:focus{color:#444;outline:none}h1,h2,h3{font-family:var(--font-headline);font-weight:800;letter-spacing:-.025em;margin:0 0 .4rem;color:var(--color-primary)}h1{font-size:clamp(2rem,3vw,2.8rem);background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.muted{color:var(--color-muted)}.tiny{font-size:.82rem}.break{word-break:break-all}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--color-muted);margin:0 0 .35rem}.boot{min-height:100vh;display:grid;place-items:center;color:var(--color-muted)}.shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{padding:1.4rem;border-right:1px solid var(--line);background:var(--color-primary);color:#f9fafb;display:flex;flex-direction:column;gap:1.5rem;box-shadow:0 1px 4px var(--shadow-light)}.brand{display:flex;gap:.85rem;align-items:center}.brand-mark{width:46px;height:46px;border-radius:var(--border-radius);display:grid;place-items:center;background:var(--gradient-accent);font-weight:900;color:#fff;box-shadow:0 6px 20px #00000040}.brand-title{font-weight:900;font-size:1.15rem;letter-spacing:-.035em;background:linear-gradient(90deg,#fff,#d1d5db 70%,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.brand-sub{color:#f9fafb9e;font-size:.82rem}.nav{display:flex;flex-direction:column;gap:.35rem}.nav a{padding:.75rem .9rem;border-radius:var(--border-radius);color:#f9fafbc7;font-weight:600;transition:background-color var(--transition-speed) ease,color var(--transition-speed) ease}.nav a.active,.nav a:hover{background:#ffffff1a;color:#fff}.sidebar-foot{margin-top:auto;display:grid;gap:.75rem}.user-chip{display:grid;gap:.15rem;padding:.8rem;border-radius:var(--border-radius);background:#ffffff14}.user-chip span{color:#f9fafb99;font-size:.82rem}.content{padding:1.6rem 1.8rem 2.5rem;background:radial-gradient(circle at 80% -10%,rgba(59,130,246,.08),transparent 55%),var(--color-bg)}.page{max-width:1100px}.page-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.4rem}.back{color:var(--color-muted);font-size:.92rem;font-weight:600}.back:hover{color:var(--color-primary-light)}.panel{background:var(--color-card-bg-1);border-radius:var(--border-radius);box-shadow:0 10px 15px #3b82f626,0 4px 6px #2563eb1f;padding:1.4rem 1.5rem;margin-bottom:1.1rem;color:var(--color-primary);transition:box-shadow .4s ease,transform .3s ease}.collapse-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:calc(100% + 1.2rem);margin:-.35rem -.6rem;padding:.55rem .7rem;border:none;border-radius:calc(var(--border-radius) - 2px);background:transparent;cursor:pointer;text-align:left;color:inherit;font:inherit;transition:background-color .25s ease,box-shadow .25s ease}.collapse-toggle:hover{background:#1111110a}.collapse-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px #3b82f640}.collapse-title{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.collapse-mark{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:.65rem;background:linear-gradient(145deg,#111,#374151);color:#fff;font-size:.95rem;flex-shrink:0;box-shadow:0 4px 12px #0000002e}.collapsible-sources .collapse-mark{background:linear-gradient(145deg,#1d4ed8,#60a5fa)}.collapse-toggle h2{margin:0;font-size:1.35rem;display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap}.collapse-count{display:inline-grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .4rem;border-radius:999px;background:#11111114;color:var(--color-primary-light);font-size:.78rem;font-weight:700;letter-spacing:0}.collapse-chevron{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:#fff;color:var(--color-primary);border:1px solid var(--line);box-shadow:0 2px 8px var(--shadow-light);flex-shrink:0;transition:transform .28s cubic-bezier(.4,0,.2,1),background-color .25s ease,border-color .25s ease}.collapse-chevron.open{transform:rotate(180deg);background:var(--color-primary);border-color:var(--color-primary);color:#fff}.collapsible:not(.open){padding-top:.95rem;padding-bottom:.95rem}.collapse-body{margin-top:1rem;padding-top:1.1rem;border-top:1px solid rgba(17,17,17,.08);animation:collapseReveal .28s ease}@keyframes collapseReveal{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.panel:nth-of-type(2n){background:var(--color-card-bg-2);box-shadow:0 10px 15px #fcd34d26,0 4px 6px #ca8a041f}.panel:hover{box-shadow:0 24px 48px #3b82f633,0 12px 24px #2563eb29}.panel:nth-of-type(2n):hover{box-shadow:0 24px 48px #fcd34d40,0 12px 24px #ca8a0433}label{display:grid;gap:.35rem;font-size:.9rem;font-weight:600;color:var(--color-muted)}input,select{width:100%;border:1px solid var(--color-muted);background:#fff;border-radius:var(--border-radius);padding:.75rem .85rem;font:inherit;font-size:1rem;color:var(--color-text);transition:border-color .3s ease,box-shadow .3s ease}input:focus,select:focus{border-color:#3b82f6;box-shadow:0 0 8px #3b82f680;outline:none}.btn{border:1px solid var(--line);background:#fff;color:var(--color-primary);border-radius:var(--border-radius);padding:.7rem 1.1rem;font:inherit;font-weight:700;cursor:pointer;transition:background-color .3s ease,transform .25s ease,box-shadow .4s ease,color .3s ease}.btn.primary{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff;text-transform:uppercase;letter-spacing:.06em;box-shadow:0 6px 20px #00000040;position:relative;overflow:hidden}.btn.primary:before{content:"";position:absolute;left:-50%;top:0;width:200%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);transform:skew(-20deg);transition:transform .7s ease;pointer-events:none}.btn.primary:hover:before{transform:translate(150%) skew(-20deg)}.btn.primary:hover,.btn.primary:focus{background-color:var(--color-primary-light);border-color:var(--color-primary-light);transform:scale(1.04);box-shadow:0 10px 30px #0000004d;outline:none;color:#fff}.btn.ghost{background:transparent;color:inherit}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn:hover:not(:disabled):not(.primary){background:#f3f4f6}.row,.actions{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}.grow{flex:1;min-width:220px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-bottom:1rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.project-card{display:grid;gap:.9rem;padding:1.4rem 1.5rem;border-radius:var(--border-radius);background:var(--color-card-bg-1);color:var(--color-primary);box-shadow:0 10px 15px #3b82f626,0 4px 6px #2563eb1f;transition:box-shadow .4s ease,transform .3s ease}.project-card:nth-child(2n){background:var(--color-card-bg-2);box-shadow:0 10px 15px #fcd34d26,0 4px 6px #ca8a041f}.project-card:hover{color:var(--color-primary);box-shadow:0 24px 48px #3b82f640,0 12px 24px #2563eb33;transform:translateY(-2px)}.project-card:nth-child(2n):hover{box-shadow:0 24px 48px #fcd34d4d,0 12px 24px #ca8a0440}.project-card-top{display:flex;justify-content:space-between;gap:.5rem;align-items:start}.project-card h3{font-size:1.35rem;font-weight:800}.project-meta{color:var(--color-muted);font-size:.9rem;font-weight:500}.pill{font-size:.75rem;font-weight:700;padding:.28rem .55rem;border-radius:var(--border-radius)}.pill.ok{background:#1f7a4c1f;color:var(--ok)}.pill.off{background:#6b72801f;color:var(--color-muted)}.rating-row,.rating-board{display:flex;flex-wrap:wrap;gap:.55rem}.rating-chip,.rating-tile{background:#fff;border:1px solid var(--line);border-radius:var(--border-radius);padding:.55rem .7rem;display:grid;gap:.15rem;box-shadow:0 1px 4px var(--shadow-light)}.rating-chip span,.rating-tile-label{font-size:.75rem;color:var(--color-muted)}.source-label{display:inline-flex;align-items:center;gap:.4rem;line-height:1.2}.source-icon{display:inline-flex;width:1.1rem;height:1.1rem;flex-shrink:0}.source-icon svg{width:100%;height:100%;display:block}.source-maps .source-icon{color:#e53935}.source-shop .source-icon{color:#f5a623}.source-2gis .source-icon{color:#2db85a}.source-otzovik .source-icon{color:#ff6b1a}.source-unknown .source-icon{color:var(--color-muted)}.review-source{display:inline-flex;align-items:center;gap:.35rem}.rating-tile-label .source-label,.rating-chip .source-label{font-size:inherit;color:inherit}.rating-chip strong,.rating-tile-value{font-family:var(--font-headline);font-size:1.35rem;color:var(--color-primary)}.rating-board{margin-bottom:1.1rem}.rating-tile{min-width:140px;padding:.9rem 1rem;background:linear-gradient(160deg,#fff,#eef2ff)}.rating-mini{font-family:var(--font-headline);font-size:1.4rem;min-width:48px;text-align:center;font-weight:800;color:var(--color-primary)}.table{display:grid;gap:.65rem;margin-top:1rem}.table-row{display:grid;grid-template-columns:1fr auto auto;gap:.8rem;align-items:center;padding:.85rem .2rem;border-top:1px solid var(--line)}.row-actions{display:flex;gap:.35rem}.reviews{display:grid;gap:.75rem}.review-item{padding:.85rem 0;border-top:1px solid var(--line)}.review-item.review-low{color:var(--danger);background:#dc262614;border-radius:var(--border-radius);padding:.85rem .9rem;border-top:none;border-left:3px solid var(--danger)}.review-item.review-low .review-top,.review-item.review-low .muted{color:#b91c1c}.review-top{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.35rem;color:var(--color-muted);font-size:.9rem}.alert{background:#dc26261a;color:var(--danger);border-radius:var(--border-radius);padding:.75rem .9rem;margin-bottom:.9rem}.okbox{background:#1f7a4c1a;color:var(--ok);border-radius:var(--border-radius);padding:.75rem .9rem;margin-bottom:.9rem;white-space:pre-line}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem;position:relative;overflow:hidden;background:radial-gradient(circle at center,rgba(59,130,246,.12),transparent 68%),var(--color-bg)}.login-page:before{content:"";position:absolute;top:-90px;left:50%;width:520px;height:520px;background:radial-gradient(circle at center,rgba(59,130,246,.15),transparent 68%);border-radius:50%;filter:blur(64px);transform:translate(-50%);animation:floatBubble 13s ease-in-out infinite;pointer-events:none;z-index:0;mix-blend-mode:multiply}.login-card{width:min(420px,100%);background:var(--color-card-bg-1);border-radius:var(--border-radius);box-shadow:0 10px 15px #3b82f626,0 4px 6px #2563eb1f;padding:2rem 1.75rem;display:grid;gap:.85rem;position:relative;z-index:1;transition:box-shadow .4s ease}.login-card:hover{box-shadow:0 24px 48px #3b82f640,0 12px 24px #2563eb33}.login-card h1{animation:fadeIn .8s ease forwards}.sidebar .btn.ghost{color:#f9fafbd9;border-color:#ffffff2e}.sidebar .btn.ghost:hover{background:#ffffff1a;color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes floatBubble{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(24px)}}@media (max-width: 900px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.grid-2,.table-row{grid-template-columns:1fr}.content{padding:1.2rem 1rem 2rem}}@media (max-width: 480px){body{font-size:16px}.btn.primary{padding:.85rem 1.25rem;font-size:.95rem}.panel,.project-card,.login-card{padding:1.25rem}}
