/* ── Caring with Grace Team · base stylesheet ──────────────────────────────────
   The website's look (site-draft-v2/assets/css/style.css, plum monochrome, Oct 2026)
   on the Cosmos Crew app shell. Module styles live in their own files
   (brand.css, social.css, design.css, finance.css) and load after this one. */
:root{
  --plum:#5E2D5E;        /* Velvet Plum: buttons, links, the logo */
  --plum-dark:#442044;   /* Deep Plum: hover */
  --plum-wine:#502650;   /* Wine Plum */
  --orchid:#A68CA6;      /* Soft Orchid: labels on navy only */
  --mist:#EFEAEF;        /* Plum Mist: tinted sections */
  --haze:#ECE6EC;        /* Plum Haze */
  --leaf:#718172;        /* Leaf Green: the logo's sweep and leaves */
  --gold:#C7A65A;        /* Brushed Gold: on navy or plum only */
  --navy:#1E2A44;        /* Midnight Navy: all text, the sidebar */
  --slate:#5C6178;       /* secondary text */
  --ivory:#F6F4EF;       /* the page */
  --taupe:#ADA79D;       /* Warm Taupe; its tint is every border */
  --border:#E3DED4;
  --white:#FFFFFF; --card:#FFFFFF;
  --ink:var(--navy); --ink-soft:var(--slate);
  --green:#3F7A55; --red:#9E3B3B;
  --serif:'DM Serif Display',Georgia,serif; --sans:'DM Sans','Helvetica Neue',Arial,sans-serif;
  --r:10px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--ivory);line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;line-height:1.2;text-wrap:balance}
h3{font-size:1.2rem} h4{font-size:1.05rem}
p{margin:0 0 .6rem} p:last-child{margin-bottom:0}
a{color:var(--plum)} a:hover{color:var(--plum-dark)}
.muted{color:var(--ink-soft)} .sm{font-size:.85rem} .err{color:var(--red);font-size:.9rem;margin:0}
.pre{white-space:pre-wrap;overflow-wrap:anywhere}
.mt{margin-top:1.2rem}
.lede{max-width:70ch;margin:-.4rem 0 1.2rem;line-height:1.55;color:var(--ink-soft)}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--plum)}

/* buttons, links, inputs (the website: plum, white text, 600 weight, 8 px corners) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--plum);color:#fff;border:1.5px solid var(--plum);border-radius:8px;padding:.65rem 1.2rem;font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover{background:var(--plum-dark);border-color:var(--plum-dark);color:#fff}
.btn.sm{padding:.4rem .85rem;font-size:.85rem}
.btn.ghost{background:transparent;color:var(--plum);border-color:var(--border)}
.btn.ghost:hover{background:#fff;color:var(--plum-dark);border-color:var(--plum)}
.btn.ghost.danger{color:var(--red)} .btn.ghost.danger:hover{border-color:var(--red);color:var(--red)}
.btn:disabled{opacity:.55;cursor:default}
.link{background:none;border:none;color:var(--plum);cursor:pointer;font:inherit;text-decoration:underline;padding:0;text-underline-offset:2px}
.pill{display:inline-flex;align-items:center;gap:.35rem;background:#fff;border:1px solid var(--border);border-radius:999px;padding:.3rem .8rem;font:inherit;font-size:.85rem;color:var(--ink);cursor:pointer}
.pill:hover{border-color:var(--plum)}
input,select,textarea{font:inherit;padding:.6rem .7rem;border:1.5px solid var(--border);border-radius:8px;background:#fff;width:100%;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--plum);box-shadow:0 0 0 3px #5e2d5e1f}
label{font-size:.78rem;font-weight:700;color:var(--ink-soft);letter-spacing:.02em}
.tag{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border:1.5px solid var(--border);border-radius:999px;padding:.08rem .5rem;white-space:nowrap;background:#fff}
.who-chip{font-size:.72rem;font-weight:700;color:#fff;border-radius:999px;padding:.12rem .55rem;white-space:nowrap}
.who-chip.none{background:transparent;color:var(--ink-soft);border:1.5px dashed var(--border)}
.cdot{width:2rem;height:2rem;border-radius:999px;border:3px solid #fff;box-shadow:0 0 0 1.5px var(--border);cursor:pointer;padding:0}
.cdot.on{box-shadow:0 0 0 2.5px var(--ink)}
.colorpick{display:flex;gap:.5rem;flex-wrap:wrap}

/* LOGIN */
.login{display:grid;place-items:center;min-height:100vh;padding:1rem;background:
  radial-gradient(90% 70% at 15% 0,#a68ca640,transparent 60%),
  radial-gradient(90% 70% at 90% 100%,#c7a65a26,transparent 60%),var(--ivory)}
.login-card{background:#fff;padding:2.2rem 2rem;border-radius:16px;width:min(380px,92vw);display:flex;flex-direction:column;gap:.7rem;text-align:center;border:1px solid var(--border);box-shadow:0 20px 60px #1e2a4422}
.login-mark{width:84px;margin:0 auto .2rem}
.login-card h1{font-size:1.7rem;color:var(--plum)}
.login-sub{font-size:.78rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--plum);margin:-.5rem 0 .2rem}
.login-card p{margin:0}
.login-step{display:flex;flex-direction:column;gap:.6rem}

/* APP SHELL: navy sidebar (the website's footer), ivory page */
.app{display:grid;grid-template-columns:230px 1fr;height:100vh}
.side{background:var(--navy);color:#fff;display:flex;flex-direction:column;padding:1.1rem .8rem}
.brand{display:flex;align-items:center;gap:.6rem;padding:.3rem .5rem 1.1rem;text-decoration:none;color:#fff}
.brand img{width:40px;height:40px;border-radius:50%}
.brand span{display:flex;flex-direction:column;line-height:1.1}
.brand b{font-family:var(--serif);font-weight:400;font-size:1.15rem}
.brand small{font-size:.68rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orchid);margin-top:.15rem}
#nav{display:flex;flex-direction:column;gap:.15rem;flex:1}
#nav a{color:#e9e4ec;text-decoration:none;padding:.6rem .75rem;border-radius:8px;font-weight:600;font-size:.95rem}
#nav a:hover{background:rgba(255,255,255,.08)}
#nav a.active{background:var(--plum);color:#fff}
.navlabel{font-size:.66rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold);padding:1rem .75rem .3rem}
.side-foot{border-top:1px solid rgba(255,255,255,.14);padding-top:.8rem;display:flex;flex-direction:column;gap:.3rem}
.who{font-size:.85rem;color:var(--orchid)} .side-foot .link{color:#e9e4ec;font-size:.85rem;text-align:left}
main{overflow:auto;padding:1.6rem 2rem 2.4rem}
main>*{min-width:0}

/* view header and tabs */
.view-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;gap:1rem;flex-wrap:wrap}
.view-head h2{font-size:2rem;color:var(--navy)}
.view-head .row{flex:none;align-items:center;gap:.5rem}
.tabs{display:inline-flex;gap:.25rem;background:#fff;border:1px solid var(--border);border-radius:999px;padding:.25rem;margin:0 0 1.2rem;flex-wrap:wrap}
.tabs button,.tabs a{border:none;background:transparent;font:inherit;font-weight:600;color:var(--ink-soft);padding:.4rem 1rem;border-radius:999px;cursor:pointer;font-size:.9rem;text-decoration:none}
.tabs .on{background:var(--plum);color:#fff}
.filters{display:inline-flex;gap:.25rem;background:#fff;border:1px solid var(--border);border-radius:999px;padding:.25rem;margin:-.4rem 0 1.2rem;flex-wrap:wrap}
.filters button{border:none;background:transparent;font:inherit;font-weight:600;color:var(--ink-soft);padding:.4rem 1rem;border-radius:999px;cursor:pointer;font-size:.9rem}
.filters button.on{background:var(--plum);color:#fff}
.back{display:inline-block;margin-bottom:.8rem;color:var(--plum);text-decoration:none;font-weight:600;font-size:.9rem}
.back:hover{text-decoration:underline}
.rule-gold{height:3px;width:56px;border-radius:2px;background:var(--gold);margin:.2rem 0 1.2rem}

/* cards and panels */
.panel,.framed,.box{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.1rem 1.25rem;margin-bottom:1.2rem}
.box.narrow{max-width:560px}
.framed .fh,.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.7rem}
.framed .fh h3,.panel-head h3{font-size:1.25rem;color:var(--navy)}
.framed .fh .note{font-size:.85rem;color:var(--plum);text-decoration:none;font-weight:600}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start} .cols2>*{min-width:0}
.soon{background:#fff;border:1px dashed var(--border);border-radius:12px;padding:2rem;text-align:center;color:var(--ink-soft)}
.wk-row{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;border-top:1px solid var(--border);text-decoration:none;color:var(--ink)}
.wk-row:first-of-type{border-top:none}
.wk-row .wk-d{font-family:var(--serif);font-size:1.05rem;color:var(--plum);min-width:4.2rem}
.wk-row .wk-t{flex:1;font-weight:600;min-width:0;overflow-wrap:anywhere}
.due{font-size:.74rem;color:var(--ink-soft);white-space:nowrap} .due.over{color:var(--red);font-weight:700}

/* stat tiles (the website's numerals) */
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin:.6rem 0 1.2rem}
.stat{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.95rem 1.05rem;display:flex;flex-direction:column;gap:.15rem;min-width:0}
.stat .k{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.stat .v{font-family:var(--serif);font-size:1.9rem;color:var(--navy);line-height:1.1;font-variant-numeric:tabular-nums}
.stat .v.sm{font-size:1.1rem}
.stat .sub{font-size:.76rem;color:var(--ink-soft)}
.stat.hl{background:var(--plum);border-color:var(--plum)} .stat.hl .k{color:#e6d9e6} .stat.hl .v{color:#fff} .stat.hl .sub{color:#e6d9e6}

/* progress bars (Goals, projects, the week line) */
.pbar{height:8px;border-radius:999px;background:var(--haze);overflow:hidden;margin:.5rem 0 .1rem}
.pbar>span{display:block;height:100%;border-radius:999px;background:var(--plum)}
.goals{display:flex;flex-direction:column;gap:1rem;max-width:760px}
.goal{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.95rem 1.15rem}
.goal-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}
.gl{font-weight:700;color:var(--navy)} .gn{font-variant-numeric:tabular-nums;font-size:.95rem}
.gbar{background:var(--haze);border-radius:999px;height:14px;overflow:hidden}
.gfill{display:block;height:100%;background:var(--plum);border-radius:999px;transition:width .3s}
.gfill.done{background:var(--green)}
.goal-actions{display:flex;gap:.9rem;align-items:center;margin-top:.5rem;flex-wrap:wrap}
.goal-actions .muted{margin-right:auto}

/* kanban (Projects) */
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}
.col{background:var(--haze);border-radius:12px;padding:.7rem;min-height:120px}
.col.drop{outline:2px dashed var(--plum)}
.col h3{font-family:var(--sans);font-weight:700;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:.2rem .3rem .7rem;display:flex;justify-content:space-between}
.card{background:var(--card);border-radius:10px;padding:.65rem .75rem;margin-bottom:.55rem;box-shadow:0 1px 3px rgba(30,42,68,.08);cursor:grab;border-left:4px solid var(--border)}
.card:active{cursor:grabbing} .card.ro{cursor:pointer}
.card.dragging{opacity:.35}
.slot{height:2.6rem;margin-bottom:.55rem;border:2px dashed var(--plum);border-radius:10px;background:#5e2d5e0d;pointer-events:none}
.card .t{font-weight:600;font-size:.95rem;line-height:1.3}
.card .meta{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}
.card .mv{margin-left:auto;display:inline-flex;gap:.15rem}
.card .mv button{border:1px solid var(--border);background:#fff;border-radius:6px;width:1.6rem;height:1.5rem;cursor:pointer;color:var(--plum);font:inherit;line-height:1}
.addcard{width:100%;text-align:left;background:transparent;border:1.5px dashed var(--border);color:var(--ink-soft);border-radius:10px;padding:.5rem;cursor:pointer;font:inherit}
.addcard:hover{border-color:var(--plum);color:var(--plum)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem}
.pcard{display:flex;flex-direction:column;gap:.5rem;background:var(--card);border-radius:12px;padding:1rem 1.1rem;text-decoration:none;color:var(--ink);border:1px solid var(--border)}
.pcard:hover{border-color:var(--plum)}
.pcard h3{font-size:1.25rem}
.ptop{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem}
.pabout{margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pwho{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-top:auto}
.pwho.big{margin:0 0 1rem;gap:.4rem .5rem}
.note-ro{margin:-.4rem 0 1rem}
.pick{display:flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;color:var(--ink);cursor:pointer}
.pick input{width:auto}
.picklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.55rem;margin:.4rem 0}

/* people */
.people{display:flex;flex-direction:column;gap:.45rem;max-width:720px}
.person{display:flex;align-items:center;gap:.7rem;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.55rem .8rem;flex-wrap:wrap}
.person.off{opacity:.6}
.pemail{flex:1;min-width:10rem;color:var(--ink-soft);font-size:.9rem;overflow-wrap:anywhere}
.ptitle{font-size:.85rem;color:var(--ink-soft)}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th{text-align:left;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:.35rem .4rem;border-bottom:1px solid var(--border)}
.tbl td{padding:.4rem .4rem;border-bottom:1px solid var(--border);vertical-align:top}
.tbl td.num,.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--navy)}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(30,42,68,.45);display:grid;place-items:center;z-index:50;padding:1rem}
.modal{background:#fff;border-radius:14px;padding:1.3rem;width:min(440px,94vw);display:flex;flex-direction:column;gap:.6rem;max-height:calc(100vh - 2rem);overflow:auto;border:1px solid var(--border)}
.modal.wide{width:min(680px,94vw)}
.modal h3{color:var(--navy);font-size:1.4rem} .modal p{margin:.1rem 0}
.row{display:flex;gap:.6rem} .row>*{flex:1;min-width:0}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:10px;z-index:99;font-weight:600;max-width:calc(100vw - 2rem)}
#newver{position:fixed;top:0;left:0;right:0;z-index:98;background:var(--gold);color:var(--navy);padding:.5rem 1rem;text-align:center;font-weight:600;display:flex;gap:.8rem;justify-content:center;align-items:center}

/* home */
.hello{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.hello .asof{font-family:var(--serif);font-style:italic;color:var(--plum);font-size:1.1rem}

@media(max-width:860px){
  .app{grid-template-columns:1fr;height:auto;min-height:100vh}
  .side{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.3rem;padding:.6rem .7rem;position:sticky;top:0;z-index:40}
  .brand{padding:.2rem .3rem;flex:1 1 100%}
  #nav{flex-direction:row;flex-wrap:wrap;gap:.2rem} #nav a{padding:.45rem .65rem;font-size:.88rem}
  .navlabel{display:none}
  .side-foot{border-top:none;padding-top:0;flex-direction:row;gap:.6rem;margin-left:auto;align-items:center}
  main{padding:1rem .9rem 2rem;overflow:visible}
  .board{grid-template-columns:1fr} .cols2{grid-template-columns:1fr}
  .view-head h2{font-size:1.6rem}
}
