@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Work+Sans:wght@400;500;600&display=swap');

:root{
  --bg-void:#120C24; --bg-panel:#1C1638; --bg-panel-alt:#241C46;
  --accent-gold:#C9A66B; --accent-gold-dim:rgba(201,166,107,0.28);
  --accent-violet:#8B7FE8; --text-primary:#EFEAFB; --text-muted:#9D93C4;
  --danger:#E0708A; --ok:#7FC9A6; --warn:#E0B96F;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg-void);color:var(--text-primary);font-family:'Work Sans',sans-serif;min-height:100vh;}
h1,h2,h3,.serif{font-family:'Cormorant Garamond',serif;}
a{color:var(--accent-violet);}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
::selection{background:var(--accent-gold-dim);}

#loading{height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:14px;letter-spacing:0.02em;}

.login-wrap{min-height:100vh;display:flex;}
.login-brand{
  flex:0 0 42%;
  background:radial-gradient(ellipse at 20% 15%, rgba(139,127,232,0.20), transparent 55%),
             radial-gradient(ellipse at 80% 85%, rgba(201,166,107,0.15), transparent 50%), var(--bg-void);
  position:relative;display:flex;flex-direction:column;justify-content:space-between;
  padding:56px 48px;border-right:1px solid var(--accent-gold-dim);overflow:hidden;
}
.brand-logo-wrap{position:relative;width:132px;height:132px;margin-bottom:22px;}
.brand-logo-glow{position:absolute;inset:-46px;background:radial-gradient(circle, rgba(139,110,240,0.38), rgba(79,180,240,0.12) 55%, transparent 72%);filter:blur(2px);z-index:0;}
.brand-logo-img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 22px rgba(123,108,250,0.5));}
.brand-mark{font-size:34px;font-weight:600;letter-spacing:0.01em;position:relative;z-index:1;}
.brand-mark span{color:var(--accent-gold);}
.brand-tagline{color:var(--text-muted);font-size:15px;max-width:280px;line-height:1.6;position:relative;z-index:1;}
.brand-foot{font-size:12px;color:var(--text-muted);position:relative;z-index:1;}

.login-form-side{flex:1;display:flex;align-items:center;justify-content:center;padding:32px;}
.login-card{width:100%;max-width:360px;}
.login-card h2{font-size:26px;margin:0 0 6px 0;font-weight:600;}
.login-card p.sub{color:var(--text-muted);font-size:14px;margin:0 0 32px 0;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:6px;}
.pw-wrap{position:relative;}
.field input{width:100%;padding:11px 13px;background:var(--bg-panel);border:1px solid var(--accent-gold-dim);border-radius:3px;color:var(--text-primary);font-size:14.5px;}
.pw-wrap input{padding-right:64px;}
.field input:focus{outline:2px solid var(--accent-gold);outline-offset:1px;border-color:transparent;}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:11.5px;padding:6px 8px;}
.pw-toggle:hover{color:var(--accent-gold);}
.btn-primary{width:100%;padding:12px;background:var(--accent-gold);color:#1C1638;border:none;border-radius:3px;font-size:14.5px;font-weight:600;margin-top:6px;}
.btn-primary:hover{background:#dab77c;}
.btn-primary:disabled{opacity:0.5;cursor:not-allowed;}
.error-msg{background:rgba(224,112,138,0.12);border:1px solid rgba(224,112,138,0.4);color:var(--danger);padding:10px 12px;border-radius:3px;font-size:13.5px;margin-bottom:18px;}
.warn-msg{background:rgba(224,185,111,0.12);border:1px solid rgba(224,185,111,0.4);color:var(--warn);padding:10px 12px;border-radius:3px;font-size:13.5px;margin-bottom:18px;}
.ok-msg{background:rgba(127,201,166,0.12);border:1px solid rgba(127,201,166,0.4);color:var(--ok);padding:10px 12px;border-radius:3px;font-size:13.5px;margin-bottom:18px;}
.hint{font-size:12px;color:var(--text-muted);margin-top:22px;line-height:1.6;border-top:1px solid var(--accent-gold-dim);padding-top:16px;}
.pw-rules{font-size:11.5px;color:var(--text-muted);margin-top:-10px;margin-bottom:18px;line-height:1.5;}

.app-shell{display:flex;min-height:100vh;}
.sidebar{width:236px;flex:0 0 236px;background:var(--bg-panel);border-right:1px solid var(--accent-gold-dim);display:flex;flex-direction:column;padding:26px 0 20px 0;}
.sidebar-brand{display:flex;align-items:center;gap:10px;font-size:21px;padding:0 24px 22px 24px;border-bottom:1px solid var(--accent-gold-dim);margin-bottom:18px;}
.sidebar-logo{width:26px;height:26px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 0 6px rgba(123,108,250,0.6));}
.side-nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 12px;}
.side-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:3px;background:none;border:none;border-left:2px solid transparent;color:var(--text-muted);font-size:14px;text-align:left;width:100%;}
.side-link svg{width:16px;height:16px;flex-shrink:0;}
.side-link:hover{background:var(--bg-panel-alt);color:var(--text-primary);}
.side-link.active{background:var(--bg-panel-alt);color:var(--text-primary);border-left-color:var(--accent-gold);}
.sidebar-foot{padding:16px 20px 0 20px;border-top:1px solid var(--accent-gold-dim);margin-top:14px;}
.sidebar-foot .who-name{font-size:13.5px;margin-bottom:3px;}
.sidebar-foot .who-role{display:inline-block;font-size:10.5px;color:var(--accent-gold);border:1px solid var(--accent-gold-dim);padding:2px 8px;border-radius:20px;margin-bottom:12px;}
.btn-ghost{background:transparent;border:1px solid var(--accent-gold-dim);color:var(--text-muted);padding:7px 14px;border-radius:3px;font-size:13px;width:100%;}
.btn-ghost:hover{border-color:var(--accent-gold);color:var(--text-primary);}

.main-area{flex:1;min-width:0;}
@media(max-width:820px){
  .app-shell{flex-direction:column;}
  .sidebar{width:100%;flex:0 0 auto;flex-direction:row;align-items:center;padding:12px 14px;gap:12px;}
  .sidebar-brand{border-bottom:none;margin-bottom:0;padding:0;}
  .side-nav{flex-direction:row;overflow-x:auto;flex:1;gap:4px;}
  .side-link{flex-shrink:0;border-left:none;border-bottom:2px solid transparent;}
  .side-link.active{border-left-color:transparent;border-bottom-color:var(--accent-gold);}
  .sidebar-foot{border-top:none;margin-top:0;padding:0;width:auto;}
  .sidebar-foot .who-name,.sidebar-foot .who-role{display:none;}
  .btn-ghost{width:auto;white-space:nowrap;}
}

.content{padding:40px 44px;max-width:1080px;}
@media(max-width:600px){.content{padding:26px 20px;}}
.greeting{font-size:27px;margin:0 0 4px 0;}
.greeting .muted{color:var(--text-muted);font-size:14.5px;font-family:'Work Sans',sans-serif;}
.section-sub{color:var(--text-muted);font-size:14px;margin:0 0 6px 0;}

.stat-row{display:flex;margin:26px 0 34px 0;border-top:1px solid var(--accent-gold-dim);border-bottom:1px solid var(--accent-gold-dim);}
.stat-item{flex:1;padding:16px 22px;border-right:1px solid var(--accent-gold-dim);}
.stat-item:last-child{border-right:none;}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--accent-gold);line-height:1;}
.stat-label{font-size:11.5px;color:var(--text-muted);margin-top:5px;}
@media(max-width:600px){.stat-row{flex-direction:column;}.stat-item{border-right:none;border-bottom:1px solid var(--accent-gold-dim);}.stat-item:last-child{border-bottom:none;}}

.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;margin-top:8px;}
@media(max-width:900px){.grid{grid-template-columns:1fr;}}
@media(max-width:900px){.login-wrap{flex-direction:column;}.login-brand{flex:0 0 auto;padding:36px;}}

.panel-title{font-size:19px;margin:0 0 6px 0;display:flex;align-items:center;justify-content:space-between;}
.panel-title .count{font-size:12px;color:var(--text-muted);font-family:'Work Sans',sans-serif;}
.panel-sub{font-size:12.5px;color:var(--text-muted);margin:0 0 18px 0;}

.timeline{border-left:1px solid var(--accent-gold-dim);padding-left:22px;}
.tl-item{position:relative;padding-bottom:26px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{content:'';position:absolute;left:-27px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--accent-gold);}
.tl-date{font-size:11.5px;color:var(--text-muted);margin-bottom:4px;}
.tl-title{font-size:16px;font-weight:600;margin:0 0 5px 0;font-family:'Work Sans',sans-serif;}
.tl-body{font-size:13.8px;color:var(--text-muted);line-height:1.55;margin:0;}

.links-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:520px){.links-grid{grid-template-columns:1fr;}}
.link-tile{display:block;padding:17px;border:1px solid var(--accent-gold-dim);border-radius:3px;background:var(--bg-panel);text-decoration:none;color:var(--text-primary);transition:border-color .15s,transform .15s;}
.link-tile:hover{border-color:var(--accent-gold);transform:translateY(-1px);}
.link-tile svg{width:19px;height:19px;color:var(--accent-violet);margin-bottom:11px;}
.link-tile .lt-name{font-size:14.5px;font-weight:600;margin-bottom:3px;}
.link-tile .lt-note{font-size:12px;color:var(--text-muted);}

.empty{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:13.5px;padding:14px 0;}
.empty svg{width:16px;height:16px;opacity:0.6;flex-shrink:0;}

.admin-section{margin-bottom:48px;}
table{width:100%;border-collapse:collapse;font-size:13.5px;}
th{text-align:left;color:var(--text-muted);font-weight:500;font-size:12px;padding:9px 10px;border-bottom:1px solid var(--accent-gold-dim);}
td{padding:11px 10px;border-bottom:1px solid rgba(201,166,107,0.12);}
tbody tr:hover td{background:rgba(201,166,107,0.04);}
.badge{font-size:11px;padding:2px 8px;border-radius:20px;border:1px solid var(--accent-gold-dim);color:var(--accent-gold);white-space:nowrap;}
.badge.member{color:var(--accent-violet);}
.badge.status-ok{color:var(--ok);border-color:rgba(127,201,166,0.4);}
.badge.status-warn{color:var(--warn);border-color:rgba(224,185,111,0.4);}
.badge.status-lock{color:var(--danger);border-color:rgba(224,112,138,0.4);}
.row-actions button{background:none;border:none;color:var(--text-muted);font-size:12.5px;margin-right:10px;padding:0;text-decoration:underline;}
.row-actions button:hover{color:var(--danger);}
.inline-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:18px;padding:20px;background:var(--bg-panel);border:1px solid var(--accent-gold-dim);border-radius:3px;}
.inline-form-title{font-size:12.5px;color:var(--text-muted);margin:24px 0 0 0;}
.inline-form .field{margin-bottom:0;min-width:150px;flex:1;}
.inline-form textarea{width:100%;padding:10px 12px;background:var(--bg-void);border:1px solid var(--accent-gold-dim);border-radius:3px;color:var(--text-primary);font-size:13.5px;resize:vertical;min-height:60px;}
.btn-add{background:var(--accent-violet);color:#120C24;border:none;padding:10px 18px;border-radius:3px;font-size:13.5px;font-weight:600;height:fit-content;white-space:nowrap;}
.btn-add:hover{background:#a297f0;}
select.role-select{padding:10px 12px;background:var(--bg-void);border:1px solid var(--accent-gold-dim);border-radius:3px;color:var(--text-primary);font-size:13.5px;}

.reveal-box{background:var(--bg-panel-alt);border:1px solid var(--accent-gold);border-radius:3px;padding:16px 18px;margin-bottom:22px;}
.reveal-box .rb-label{font-size:12px;color:var(--text-muted);margin-bottom:6px;}
.reveal-box .rb-value{font-size:16px;font-weight:600;letter-spacing:0.02em;font-family:monospace;color:var(--accent-gold);}
.reveal-box .rb-note{font-size:12px;color:var(--text-muted);margin-top:8px;line-height:1.5;}
.reveal-box button{margin-top:10px;background:none;border:1px solid var(--accent-gold-dim);color:var(--text-muted);padding:5px 12px;border-radius:3px;font-size:12px;}

.narrow-card{max-width:420px;}
