:root{--bg:#eef6fb;--bg-accent:#d9ecf8;--surface:#fff;--surface-2:#f5fafd;--border:#c5dceb;--border-strong:#9fc4df;--text:#16324a;--text-muted:#5a7390;--primary:#1d6fb8;--primary-hover:#165a96;--primary-soft:#e3f1fb;--danger:#c0392b;--danger-soft:#fdecea;--shadow:0 8px 24px #16466e14;--radius:12px;--sidebar-w:260px;--font:"DM Sans", system-ui, sans-serif;--font-display:"Source Serif 4", Georgia, serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(ellipse 80% 50% at 0% 0%, #d4ebf8 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 0%, #cfe6f5 0%, transparent 45%), var(--bg);-webkit-font-smoothing:antialiased;margin:0}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);color:#eef7fd;background:linear-gradient(#1a5f9e 0%,#1d6fb8 45%,#15609f 100%);flex-direction:column;flex-shrink:0;gap:1.5rem;height:100vh;padding:1.4rem 1rem;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #ffffff26;align-items:center;gap:.75rem;padding:.35rem .5rem 1rem;display:flex}.brand-mark{letter-spacing:.02em;background:#ffffff2e;border-radius:10px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.brand-name{font-family:var(--font-display);font-size:1.2rem;font-weight:700;line-height:1.2}.brand-sub{opacity:.75;margin-top:.15rem;font-size:.75rem}.nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.nav-link{color:#ffffffd9;border-radius:10px;align-items:center;gap:.7rem;padding:.7rem .85rem;transition:background .15s,color .15s;display:flex}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{color:#fff;background:#ffffff2e;font-weight:600}.sidebar-footer{opacity:.55;padding:.5rem;font-size:.72rem}.sidebar-user{border-top:1px solid #ffffff26;flex-direction:column;gap:.65rem;padding-top:.85rem;display:flex}.sidebar-user-name{font-size:.88rem;font-weight:600}.sidebar-user-email{opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.btn-signout{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .7rem;font-size:.85rem;display:inline-flex}.btn-signout:hover{background:#ffffff29}.auth-screen{background:radial-gradient(ellipse 70% 50% at 20% 10%, #cfe8f8 0%, transparent 55%), radial-gradient(ellipse 50% 40% at 90% 80%, #b9daf0 0%, transparent 50%), var(--bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow);border-radius:16px;padding:1.75rem 1.6rem}.auth-brand{align-items:center;gap:.9rem;margin-bottom:1.4rem;display:flex}.auth-brand .brand-mark{background:var(--primary);color:#fff}.auth-brand h1{font-family:var(--font-display);color:#123552;margin:0;font-size:1.55rem}.auth-brand p{color:var(--text-muted);margin:.25rem 0 0;font-size:.9rem;line-height:1.4}.auth-form{flex-direction:column;gap:.85rem;display:flex}.password-field{align-items:center;display:flex;position:relative}.password-field input{width:100%;padding-right:2.6rem}.password-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-toggle:hover{background:var(--primary-soft);color:var(--primary)}.auth-submit{justify-content:center;width:100%;margin-top:.35rem;padding:.7rem 1rem}.auth-note{text-align:center;color:var(--text-muted);margin:1rem 0 0;font-size:.82rem}.auth-note a{color:var(--primary);font-weight:600}.users-table-wrap{padding:0;overflow:auto}.users-table{border-collapse:collapse;width:100%}.users-table th,.users-table td{text-align:left;border-bottom:1px solid var(--border);padding:.85rem 1.1rem;font-size:.92rem}.users-table th{background:var(--surface-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.users-table tr:last-child td{border-bottom:none}.main{flex:1;min-width:0;padding:1.75rem 2rem 2.5rem}.page{max-width:1180px;margin:0 auto;animation:.35s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-header h1{font-family:var(--font-display);color:#123552;margin:0;font-size:1.9rem;font-weight:700}.page-sub{color:var(--text-muted);max-width:52ch;margin:.35rem 0 0;line-height:1.45}.page-actions{gap:.5rem;display:flex}.btn-primary,.btn-secondary,.btn-ghost{cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:.4rem;padding:.55rem .95rem;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-secondary:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn-ghost{color:var(--text-muted);background:0 0;padding:.4rem}.btn-ghost:hover{background:var(--primary-soft);color:var(--primary)}.btn-ghost.danger:hover{background:var(--danger-soft);color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.form-panel{margin-bottom:1.25rem;padding:1.25rem 1.35rem 1.35rem;animation:.25s fadeIn}.panel-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.panel-head h2{margin:0;font-size:1.1rem;font-weight:600}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem 1rem;margin-bottom:1rem;display:grid}label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500;display:flex}label.full{margin-bottom:1rem;display:flex}label.span-2{grid-column:span 2}input[type=text],input[type=number],input[type=date]{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;padding:.55rem .7rem}input:focus{border-color:var(--primary);background:#fff;outline:2px solid #9fcceb}.form-actions{justify-content:flex-end;gap:.6rem;display:flex}.entry-list{flex-direction:column;gap:.85rem;display:flex}.entry-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.15rem;transition:transform .15s,border-color .15s}.entry-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.entry-card-top{justify-content:space-between;gap:1rem;display:flex}.entry-date{color:var(--primary);letter-spacing:.02em;font-size:.78rem;font-weight:600}.entry-card h3{margin:.2rem 0 0;font-size:1.05rem}.entry-meta{color:var(--text-muted);margin-top:.25rem;font-size:.85rem}.entry-actions{gap:.2rem;display:flex}.entry-preview{border-top:1px solid var(--border);color:var(--text);margin-top:.75rem;padding-top:.75rem;font-size:.92rem}.empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius);background:#ffffffa6;padding:2.5rem 1.5rem}.banner{border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.banner.success{color:#1f7a4d;background:#e8f7ef;border:1px solid #b7e4c7}.auth-inline-link{text-align:right;margin-top:-.35rem}.auth-inline-link a{color:var(--primary);font-size:.85rem;font-weight:600}.users-actions{text-align:right;width:48px}.notepad{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.notepad-toolbar{border-bottom:1px solid var(--border);background:var(--surface-2);align-items:center;gap:.25rem;padding:.45rem .55rem;display:flex}.notepad-toolbar button{cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;place-items:center;display:grid}.notepad-toolbar button:hover,.notepad-toolbar button.active{background:var(--primary-soft);color:var(--primary)}.notepad-toolbar .roman-btn{width:auto;padding:0 .45rem;font-size:.78rem;font-weight:700}.toolbar-sep{background:var(--border);width:1px;height:18px;margin:0 .25rem}.notepad-content{outline:none;min-height:120px;padding:.85rem 1rem;line-height:1.55}.notepad .ProseMirror{outline:none;min-height:120px;padding:.85rem 1rem}.notepad .ProseMirror p{margin:0 0 .5rem}.notepad .ProseMirror ul,.notepad .ProseMirror ol,.notepad-content ul,.notepad-content ol{margin:.35rem 0 .55rem;padding-left:1.35rem}.notepad .ProseMirror ol[type=i],.notepad-content ol[type=i]{list-style-type:lower-roman}.notepad .ProseMirror p.is-editor-empty:first-child:before{color:#9aadc0;content:attr(data-placeholder);float:left;pointer-events:none;height:0}.notepad-readonly .notepad-content,.notepad-readonly .ProseMirror{min-height:auto}.kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;padding:.85rem 1rem}.kpi-label{color:var(--text-muted);font-size:.75rem;font-weight:500}.kpi-value{color:#123552;margin-top:.25rem;font-size:1.15rem;font-weight:700}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.chart-panel{padding:1.1rem 1.15rem .75rem}.chart-panel.wide{grid-column:1/-1}.chart-panel h2{margin:0;font-size:1.05rem}.chart-sub{color:var(--text-muted);margin:.2rem 0 .75rem;font-size:.8rem}.chart-wrap{width:100%}@media (width<=1100px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;padding-bottom:.75rem;position:relative}.nav{flex-flow:wrap}.nav-link{padding:.5rem .7rem;font-size:.85rem}.main{padding:1.25rem 1rem 2rem}.chart-grid,.kpi-grid,.form-grid{grid-template-columns:1fr}.chart-panel.wide{grid-column:auto}.page-header{flex-direction:column}label.span-2{grid-column:auto}}
