:root {
    --brand:#8d5558;
    --brand2:#744447;
    --brand-soft:#f6eeee;
    --bg:#f6f7f9;
    --surface:#fff;
    --ink:#1f2937;
    --muted:#667085;
    --line:#e4e7ec;
    --green:#157a52;
    --green-soft:#eaf7f1;
    --amber:#a86407;
    --amber-soft:#fff4dc;
    --blue:#3568d4;
    --red:#b42318;
    --shadow:0 16px 44px rgba(24,33,47,.08);
    --r:18px
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    background:var(--bg);
    color:var(--ink);
    line-height:1.45
}
button,input,textarea,select {
    font:inherit
}
.hidden {
    display:none!important
}
.topbar {
    background:linear-gradient(100deg,var(--brand),var(--brand2));
    height:82px;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 28px;
    position:sticky;
    top:0;
    z-index:70;
    box-shadow:0 3px 16px rgba(74,43,45,.18)
}
.logo {
    height:58px;
    width:auto;
    max-width:240px;
    object-fit:contain
}
.top-actions {
    display:flex;
    gap:8px;
    align-items:center
}
.top-btn {
    height:40px;
    border:1px solid rgba(255,255,255,.26);
    background:rgba(255,255,255,.10);
    color:#fff;
    border-radius:10px;
    padding:0 13px;
    cursor:pointer;
    font-weight:700;
    font-size:13px;
    backdrop-filter:blur(8px)
}
.top-btn:hover {
    background:rgba(255,255,255,.18)
}
.shell {
    max-width:1320px;
    margin:auto;
    padding:30px 26px 64px
}
.hero {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
    margin-bottom:22px
}
.hero h1 {
    font-size:clamp(30px,4vw,46px);
    line-height:1.06;
    letter-spacing:-.04em;
    margin:0 0 8px
}
.hero p {
    margin:0;
    color:var(--muted);
    max-width:760px
}
.version-box {
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    padding:12px 14px;
    box-shadow:0 7px 18px rgba(24,33,47,.04);
    min-width:190px
}
.version-box strong {
    font-size:12px;
    display:block
}
.version-box span {
    font-size:11px;
    color:var(--muted)
}
.panel {
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    box-shadow:var(--shadow)
}
.seg {
    display:inline-grid;
    grid-template-columns:1fr 1fr;
    padding:4px;
    background:#f0f2f5;
    border-radius:12px;
    gap:4px
}
.seg button {
    border:0;
    background:transparent;
    border-radius:9px;
    padding:10px 14px;
    color:var(--muted);
    font-weight:760;
    font-size:13px;
    cursor:pointer
}
.seg button.active {
    background:#fff;
    color:var(--ink);
    box-shadow:0 2px 10px rgba(24,33,47,.08)
}
.btn {
    height:42px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
    padding:0 13px;
    cursor:pointer;
    font-size:13px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px
}
.btn:hover {
    background:#fafafa
}
.btn.primary {
    background:var(--brand);
    border-color:var(--brand);
    color:#fff
}
.btn.primary:hover {
    background:var(--brand2)
}
.btn.danger {
    color:var(--red);
    border-color:#f1c3be;
    background:#fff
}
.btn.small {
    height:34px;
    padding:0 9px;
    font-size:12px
}
.btn.icon {
    width:38px;
    padding:0
}
.field label,.label {
    display:block;
    font-size:12px;
    color:#4f5c6d;
    font-weight:760;
    margin-bottom:7px
}
.input,.trigger,textarea {
    width:100%;
    border:1px solid #d8dce3;
    border-radius:11px;
    background:#fff;
    color:var(--ink);
    outline:none;
    transition:.16s ease
}
.input,.trigger {
    height:46px;
    padding:0 13px
}
.input:focus,.trigger:focus,textarea:focus {
    border-color:var(--brand);
    box-shadow:0 0 0 3px rgba(141,85,88,.11)
}
textarea {
    padding:11px 12px;
    resize:vertical;
    min-height:76px
}
.trigger {
    display:flex;
    align-items:center;
    justify-content:space-between;
    text-align:left;
    cursor:pointer
}
.trigger.placeholder .value {
    color:#98a2b3
}
.select-wrap {
    position:relative
}
.dropdown,.suggestions {
    position:absolute;
    z-index:90;
    left:0;
    right:0;
    top:calc(100% + 7px);
    background:#fff;
    border:1px solid var(--line);
    border-radius:13px;
    box-shadow:0 18px 44px rgba(24,33,47,.16);
    overflow:hidden
}
.dropdown-search {
    padding:8px;
    border-bottom:1px solid #f0f1f3
}
.dropdown-list,.suggestions-list {
    max-height:330px;
    overflow:auto;
    padding:6px
}
.opt {
    width:100%;
    border:0;
    background:transparent;
    text-align:left;
    border-radius:9px;
    padding:9px 10px;
    cursor:pointer
}
.opt:hover,.opt.active {
    background:var(--brand-soft);
    color:var(--brand2)
}
.opt strong {
    display:block;
    font-size:13px
}
.opt small {
    display:block;
    font-size:11px;
    color:#8a94a3;
    margin-top:2px
}
.group-label {
    font-size:10px;
    color:#98a2b3;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:800;
    padding:9px 10px 4px
}
.empty-mini {
    padding:18px;
    text-align:center;
    color:var(--muted);
    font-size:12px
}
.badge {
    font-size:10px;
    font-weight:800;
    padding:5px 8px;
    border-radius:999px;
    white-space:nowrap
}
.badge.x {
    background:var(--green-soft);
    color:var(--green)
}
.badge.pm {
    background:var(--amber-soft);
    color:var(--amber)
}
.pill {
    font-size:11px;
    background:#f2f4f7;
    color:#596579;
    border-radius:999px;
    padding:5px 8px
}
.muted {
    color:var(--muted)
}
.toast {
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:120;
    background:#1f2937;
    color:#fff;
    border-radius:11px;
    padding:11px 14px;
    font-size:12px;
    font-weight:680;
    box-shadow:0 12px 32px rgba(0,0,0,.2);
    opacity:0;
    transform:translateY(8px);
    pointer-events:none;
    transition:opacity .16s ease,transform .16s ease
}
.toast.is-visible {
    opacity:1;
    transform:translateY(0)
}
.errorbar {
    margin:0 auto 16px;
    max-width:1320px;
    background:#fff1f0;
    border:1px solid #f6c8c3;
    color:#8c251c;
    border-radius:12px;
    padding:11px 14px;
    font-size:13px
}
.spinner {
    width:20px;
    height:20px;
    border:2px solid #ddd;
    border-top-color:var(--brand);
    border-radius:50%;
    animation:spin .7s linear infinite
}
@keyframes spin {
    to {
        transform:rotate(360deg)
    }
}
@media(max-width:760px) {
    .topbar {
        height:72px;
        padding:0 16px
    }
    .logo {
        height:48px;
        max-width:180px
    }
    .shell {
        padding:22px 14px 50px
    }
    .hero {
        display:block
    }
    .version-box {
        margin-top:14px
    }
    .top-actions .hide-mobile {
        display:none
    }
}
.controls {
    display:grid;
    grid-template-columns:minmax(320px,1fr) auto auto;
    gap:10px;
    padding:18px 20px 20px;
    border-top:1px solid var(--line);
    align-items:end
}
.panel-top {
    padding:20px 20px 0
}
.content {
    padding:22px
}
.empty-state {
    border:1px dashed #d5d9e0;
    border-radius:16px;
    background:#fbfcfd;
    padding:54px 22px;
    text-align:center
}
.empty-state .ico {
    width:48px;
    height:48px;
    border-radius:14px;
    background:var(--brand-soft);
    color:var(--brand);
    display:grid;
    place-items:center;
    margin:0 auto 12px;
    font-size:23px
}
.empty-state h3 {
    margin:0 0 5px;
    font-size:17px
}
.empty-state p {
    margin:0;
    color:var(--muted);
    font-size:13px
}
.summary {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:20px
}
.summary h2 {
    margin:0;
    font-size:22px;
    letter-spacing:-.02em
}
.meta {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-top:7px
}
.progress {
    min-width:240px;
    max-width:330px;
    flex:1
}
.progress-line {
    display:flex;
    justify-content:space-between;
    font-size:12px;
    margin-bottom:7px
}
.track {
    height:9px;
    background:#edf0f3;
    border-radius:999px;
    overflow:hidden
}
.bar {
    height:100%;
    width:0;
    background:linear-gradient(90deg,var(--brand),#bd7f82);
    border-radius:999px;
    transition:width .25s
}
.section {
    margin-top:21px
}
.section-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:10px
}
.section-title {
    display:flex;
    align-items:center;
    gap:9px
}
.dot {
    width:10px;
    height:10px;
    border-radius:50%
}
.dot.x {
    background:var(--green)
}
.dot.pm {
    background:var(--amber)
}
.section h3 {
    margin:0;
    font-size:15px
}
.cards {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:10px
}
.card {
    border:1px solid var(--line);
    border-radius:14px;
    padding:15px;
    background:#fff;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:12px;
    align-items:start;
    transition:.17s
}
.card:hover {
    border-color:#cfd5dd;
    box-shadow:0 7px 18px rgba(24,33,47,.06);
    transform:translateY(-1px)
}
.card.done {
    background:#fbfdfc
}
.check {
    appearance:none;
    width:21px;
    height:21px;
    border:1.6px solid #c7cdd5;
    border-radius:6px;
    margin:1px 0 0;
    cursor:pointer;
    display:grid;
    place-content:center
}
.check:checked {
    background:var(--green);
    border-color:var(--green)
}
.check:checked:after {
    content:'✓';
    color:#fff;
    font-size:14px;
    font-weight:900
}
.card-top {
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:start
}
.card-name {
    font-size:14px;
    font-weight:760
}
.card-group {
    font-size:11px;
    color:#7a8494;
    margin-top:4px
}
.card-note {
    font-size:12px;
    color:#566273;
    background:#f7f8fa;
    border-radius:8px;
    padding:8px 9px;
    margin-top:9px
}
.filter {
    height:46px;
    border:1px solid #d8dce3;
    border-radius:11px;
    background:#fff;
    padding:0 12px;
    cursor:pointer;
    font-size:12px;
    font-weight:700;
    white-space:nowrap
}
.filter.active {
    background:#fffaf0;
    border-color:#e8c57d;
    color:#8b5708
}
.loading {
    padding:60px 20px;
    display:flex;
    gap:10px;
    justify-content:center;
    align-items:center;
    color:var(--muted)
}
.manual-load {
    margin-top:10px
}
.config-update {
    display:none;
    margin-bottom:14px;
    background:#eef4ff;
    border:1px solid #c9d7fb;
    color:#3159ae;
    border-radius:12px;
    padding:10px 12px;
    font-size:12px
}
@media(max-width:900px) {
    .controls {
        grid-template-columns:1fr 1fr
    }
    .summary {
        display:block
    }
    .progress {
        margin-top:15px;
        max-width:none
    }
}
@media(max-width:600px) {
    .controls {
        grid-template-columns:1fr
    }
    .cards {
        grid-template-columns:1fr
    }
}
@media print {
    .topbar,.hero,.panel-top,.controls,.clear-progress,.config-update {
        display:none!important
    }
    .shell {
        padding:0
    }
    .panel {
        border:0;
        box-shadow:none
    }
    .content {
        padding:0
    }
    .card {
        break-inside:avoid
    }
}

/* v3: briefing-day estimates */
.summary-main{min-width:0;flex:1}
.briefing-estimate{margin-top:14px;border:1px solid #eadedf;background:#faf7f7;border-radius:13px;padding:12px 13px;max-width:620px}
.estimate-title{font-size:11px;font-weight:800;color:var(--brand2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}
.estimate-values{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.estimate-values>div{background:#fff;border:1px solid #eee5e5;border-radius:10px;padding:10px}
.estimate-values span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
.estimate-values strong{display:block;font-size:17px;color:var(--ink)}
.estimate-values small{display:block;font-size:10px;color:#8a94a3;margin-top:3px}
.estimate-basis{font-size:10px;color:#8a6a6c;margin-top:8px}
@media(max-width:600px){.estimate-values{grid-template-columns:1fr}}
