:root{--font-family-base: "Segoe UI", Tahoma, Verdana, sans-serif;--bg-page-start: #f7f4ff;--bg-page-end: #efe8ff;--bg-header-start: #6d3aff;--bg-header-end: #4f2bb9;--color-text: #1f1d2b;--color-muted: #6d6880;--color-surface: #ffffff;--color-border: #e5def7;--color-primary: #5b34d6;--color-primary-hover: #4f2bb9;--color-secondary: #f2edff;--color-secondary-hover: #e4dbff;--color-danger: #b7374d;--radius-lg: 16px;--radius-md: 12px;--shadow-soft: 0 6px 24px rgba(63, 27, 140, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-family-base);color:var(--color-text);background:linear-gradient(160deg,var(--bg-page-start) 0%,var(--bg-page-end) 100%)}h1,h2,h3,h4,p{margin:0}button,input{font:inherit}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.app-shell__content{display:flex;flex-direction:column;min-width:0}.app-shell__main{padding:1.5rem}.sidebar{background:linear-gradient(180deg,#43238f,#2f1a66);color:#fff;padding:1.5rem 1rem;border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column}.sidebar__brand{display:flex;align-items:center;gap:.75rem;padding:.5rem .5rem 1.2rem}.sidebar__brand p{font-size:.82rem;color:#d6caef}.sidebar__logo{display:block;width:36px;height:36px;object-fit:contain;object-position:center}.sidebar__nav{display:flex;flex-direction:column;gap:.4rem}.sidebar__link{color:#efe8ff;text-decoration:none;font-size:.95rem;border-radius:12px;padding:.7rem .75rem;transition:all .2s ease}.sidebar__link:hover{background:#ffffff1a}.sidebar__link--active{background:#fff3;font-weight:600}.sidebar__meta{margin-top:auto;color:#d6caef;font-size:.75rem;padding:1rem .5rem 0;word-break:break-all}.topbar{background:linear-gradient(90deg,var(--bg-header-start) 0%,var(--bg-header-end) 100%);color:#fff;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom-left-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.topbar__title h1{font-size:1.1rem}.topbar__title span{font-size:.85rem;color:#dcd2ff}.topbar__actions{display:flex;align-items:center;gap:.8rem}.topbar__actions--admin{flex-wrap:wrap;justify-content:flex-end}.topbar__filters{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.5rem}.topbar__user{text-align:right}.topbar__user span{display:block;color:#dcd2ff;font-size:.8rem}.btn{border:0;border-radius:12px;height:40px;padding:0 1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn:disabled{opacity:.7;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-secondary);color:var(--color-primary)}.btn--secondary:hover:not(:disabled){background:var(--color-secondary-hover)}.input{border:1px solid var(--color-border);border-radius:12px;height:40px;padding:0 .8rem;outline:0;background:#fff;color:var(--color-text)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #5b34d629}.input--compact{height:36px;font-size:.85rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1rem}.login-page{min-height:100vh;display:flex;flex-direction:column}.login-page__header{background:linear-gradient(90deg,var(--bg-header-start) 0%,var(--bg-header-end) 100%);color:#fff;padding:1.1rem 2rem}.login-page__brand{display:inline-flex;align-items:center;gap:.7rem}.login-page__logo{display:block;width:184px;height:34px;object-fit:contain;object-position:left center}.login-page__content{flex:1;display:grid;place-items:center;padding:1.5rem}.login-form{display:grid;gap:.75rem;min-width:min(460px,90vw)}.login-form__actions{display:flex;gap:.6rem;margin-top:.4rem}.text-error{color:var(--color-danger);font-size:.88rem}.text-muted{color:var(--color-muted);font-size:.9rem}@media(max-width:1080px){.topbar__filters{grid-template-columns:1fr;width:100%}.topbar__actions--admin{width:100%;justify-content:space-between}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}}@media(max-width:640px){.topbar{flex-direction:column;align-items:flex-start}.topbar__actions{width:100%;justify-content:space-between}.login-form{min-width:100%}.login-form__actions{flex-direction:column}}
