:root{
    --bg:#f4f8ff;
    --bg-2:#eaf2ff;
    --surface:#ffffff;
    --surface-soft:#f9fbff;
    --text:#18324c;
    --muted:#64748b;
    --line:#d9e4f2;
    --blue:#1753b8;
    --blue-2:#0f3c86;
    --blue-3:#0b2d63;
    --blue-soft:#e8f0ff;
    --gold:#a97313;
    --gold-2:#85580f;
    --gold-soft:#fbf1dc;
    --success:#0f7a5d;
    --danger:#aa342c;
    --shadow-sm:0 10px 30px rgba(15,60,134,.08);
    --shadow-md:0 18px 45px rgba(15,60,134,.12);
    --shadow-lg:0 26px 60px rgba(10,38,81,.18);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
    margin:0;
    background:
        radial-gradient(circle at top left, rgba(23,83,184,.08), transparent 28%),
        radial-gradient(circle at top right, rgba(169,115,19,.10), transparent 22%),
        linear-gradient(180deg,var(--bg) 0%,#edf4ff 42%,#f8fbff 100%);
    color:var(--text);
    font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
a{text-decoration:none;color:var(--blue)}
a:hover{color:var(--blue-2)}
.navbar-app{
    background:linear-gradient(135deg,var(--blue-3),var(--blue-2) 52%,var(--blue));
    box-shadow:0 16px 36px rgba(9,35,77,.25);
    border-bottom:1px solid rgba(255,255,255,.08);
}
.navbar-brand{display:flex;align-items:center;gap:.9rem;color:#fff!important}
.navbar-brand strong{display:block;font-size:1.02rem;letter-spacing:-.03em}
.navbar-brand small{display:block;color:rgba(255,255,255,.76);font-size:.74rem}
.brand-mark{
    width:48px;height:48px;border-radius:16px;
    background:linear-gradient(135deg,var(--gold),#c7901b);
    display:grid;place-items:center;color:#fff;font-size:1.05rem;
    box-shadow:0 14px 28px rgba(169,115,19,.38), inset 0 1px 0 rgba(255,255,255,.28);
}
.navbar-toggler{border-color:rgba(255,255,255,.22)}
.navbar-toggler:focus{box-shadow:none}
.nav-link{color:rgba(255,255,255,.84)!important;font-weight:600}
.nav-link:hover,.nav-link:focus{color:#fff!important}
.user-pill{
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.16);
    color:#fff;padding:.5rem .88rem;border-radius:999px;font-size:.84rem;
}
.btn{
    border-radius:15px;
    padding:.8rem 1.05rem;
    font-weight:800;
    letter-spacing:-.01em;
    transition:all .18s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-sm{padding:.52rem .84rem;border-radius:12px}
.btn-primary,.btn-dark{
    background:linear-gradient(135deg,var(--blue),var(--blue-2));
    border-color:var(--blue-2);
    box-shadow:0 10px 22px rgba(23,83,184,.18);
}
.btn-primary:hover,.btn-dark:hover{
    background:linear-gradient(135deg,var(--blue-2),var(--blue-3));
    border-color:var(--blue-3);
}
.btn-gold{
    background:linear-gradient(135deg,var(--gold),#c18b18);
    border:0;color:#fff;
    box-shadow:0 10px 22px rgba(169,115,19,.20);
}
.btn-gold:hover{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#fff}
.btn-soft-dark{
    background:#fff;border:1px solid var(--line);color:var(--blue-2);
}
.btn-soft-dark:hover{background:var(--blue-soft);border-color:#bed1f2;color:var(--blue-2)}
.btn-outline-dark,.btn-outline-primary{border-color:#b8cae4;color:var(--blue-2)}
.btn-outline-dark:hover,.btn-outline-primary:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.hero-shell,.app-card,.stat-card,.soft-panel,.timeline-item,.member-card,.task-card,.public-card,.score-card{
    background:var(--surface);
    border:1px solid rgba(15,60,134,.09);
    box-shadow:var(--shadow-md);
}
.hero-shell{
    position:relative;
    overflow:hidden;
    border-radius:32px;
    padding:2.15rem;
    background:
      linear-gradient(135deg, rgba(255,255,255,.98), rgba(243,248,255,.96)),
      linear-gradient(135deg, rgba(169,115,19,.06), transparent);
}
.hero-shell::after{
    content:"";
    position:absolute;right:-80px;top:-80px;width:240px;height:240px;border-radius:50%;
    background:radial-gradient(circle, rgba(169,115,19,.16), transparent 68%);
    pointer-events:none;
}
.hero-title{font-size:clamp(2rem,4vw,3.35rem);line-height:1.05;letter-spacing:-.05em;font-weight:850;max-width:auto}
.page-title{font-size:clamp(1.75rem,3vw,2.45rem);letter-spacing:-.04em;font-weight:850;margin-bottom:.15rem}
.text-secondary,.text-muted{color:var(--muted)!important}
.app-card,.public-card,.soft-panel,.score-card{border-radius:26px}
.app-card .card-body,.public-card .card-body,.soft-panel .card-body,.score-card .card-body{padding:1.55rem}
.section-kicker{
    display:inline-flex;align-items:center;gap:.5rem;
    background:var(--gold-soft);color:var(--gold-2);
    padding:.52rem .92rem;border-radius:999px;font-size:.82rem;font-weight:850;
    border:1px solid rgba(169,115,19,.14);
}
.stat-card{
    border-radius:24px;padding:1.2rem;height:100%;
    background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.stat-number{font-size:1.95rem;font-weight:850;letter-spacing:-.04em;color:var(--blue-2)}
.card-title-strong{font-size:1.05rem;font-weight:850;letter-spacing:-.02em;color:var(--blue-2)}
.app-table{--bs-table-bg:transparent;margin-bottom:0}
.app-table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);border-bottom-color:var(--line)}
.app-table td,.app-table th{padding:1rem .78rem;border-color:var(--line);vertical-align:middle}
.kv-list{display:grid;gap:.85rem}
.kv-item{padding:1rem 1.05rem;border-radius:18px;background:var(--surface-soft);border:1px solid var(--line)}
.kv-item small{display:block;color:var(--muted);margin-bottom:.32rem;font-weight:800}
.timeline{display:grid;gap:1rem}
.timeline-item{border-radius:22px;padding:1.08rem 1.15rem;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.timeline-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.member-card{padding:1rem;border-radius:18px;background:var(--surface-soft)}
.task-card,.public-card{
    border-radius:24px;
    background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}
.task-card{padding:1.1rem;height:auto}
.score-pill,.status-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.44rem .76rem;border-radius:999px;font-size:.76rem;font-weight:850}
.score-pill{background:#ebf7f3;color:var(--success)}
.status-pill{background:var(--gold-soft);color:var(--gold-2);border:1px solid rgba(169,115,19,.14)}
.form-control,.form-select{
    border-radius:16px;border-color:#cfdbed;padding:.9rem .96rem;background:#fff;color:var(--text);
}
.form-control:focus,.form-select:focus{border-color:#7ea4e5;box-shadow:0 0 0 .22rem rgba(23,83,184,.12)}
.form-label{font-weight:850;color:var(--blue-2);margin-bottom:.5rem}
.form-text{color:var(--muted)}
.app-alert{border-radius:18px;border:0;box-shadow:var(--shadow-sm)}
.footer-app{margin-top:2rem;padding:1.5rem 0 2.15rem;border-top:1px solid rgba(15,60,134,.12);background:transparent}
.empty-box{padding:1.45rem;border:1px dashed #bfd0e6;border-radius:20px;background:rgba(255,255,255,.76);color:var(--muted)}
.badge{border-radius:999px;padding:.52rem .74rem;font-weight:850}
.text-bg-success{background:#e7f7f0!important;color:#0b684f!important}
.text-bg-warning{background:#fff4de!important;color:#8a5d14!important}
.text-bg-danger{background:#fde8e8!important;color:#a32929!important}
.text-bg-secondary,.text-bg-light{background:#eef4fb!important;color:#4d637b!important;border:1px solid var(--line)}
.alert-success{background:#e8f3ff;color:#174ea6}
.alert-danger{background:#fdecec;color:#a12e2e}
.week-tabs{gap:.65rem!important}
.week-tabs .nav-link{background:#333;border:1px solid var(--line);color:var(--blue-2);font-weight:850;border-radius:15px;padding:.78rem 1rem}
.week-tabs .nav-link.active{background:linear-gradient(135deg,var(--gold),#b88216);border-color:#b88216;color:#fff;box-shadow:0 10px 24px rgba(154,107,18,.22)}
.note-editor.note-frame{border-radius:18px;border-color:#cfdced;overflow:hidden;box-shadow:none}
.note-toolbar{background:#f8fbff;border-bottom:1px solid #d7e1ee}
.note-editing-area{background:#fff}
.action-stack{display:flex;gap:.45rem;flex-wrap:wrap}
.action-stack form{display:inline}
.danger-soft{background:#fff3f1;border:1px solid #f1c7bf;color:#8d2f20}
.danger-soft:hover{background:#d94c32;border-color:#d94c32;color:#fff}
.table-actions{min-width:170px}
.content-render p:last-child{margin-bottom:0}
.tab-content>.tab-pane{padding-top:1.1rem}
.editor-preview,.public-copy{line-height:1.75}
.editor-preview img,.public-copy img{max-width:100%;height:auto;border-radius:16px}
.public-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem}
.meta-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .78rem;border-radius:999px;background:#f2f6fd;border:1px solid var(--line);font-size:.8rem;font-weight:700;color:var(--blue-2)}
@media (max-width: 991px){
    .hero-shell{padding:1.45rem;border-radius:26px}
    .hero-title{max-width:none}
}
