:root{--bg:#f5f6f2;--surface:#fff;--ink:#203630;--muted:#6b7a73;--line:#e2e8e1;--green:#174f42;--light:#eaf2ec;--gold:#b88e46;--red:#a03e35;--radius:17px;--shadow:0 5px 20px #193f2c05;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:14px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--green)}button{border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);padding:10px 15px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:background .15s,transform .15s}button:hover{background:var(--light)}button.primary{background:var(--green);border-color:var(--green);color:white}button.primary:hover{background:#0d3c31}button.danger{color:var(--red);border-color:#edd4d0}button.ghost{background:transparent;border-color:transparent}button.small{padding:7px 10px;font-size:12px}button svg{width:17px;height:17px}.icon{width:19px;height:19px;display:inline-block;flex-shrink:0;vertical-align:middle}h1,h2,h3,h4,p{margin:0}h1{font-size:29px;font-weight:650;letter-spacing:-1px;line-height:1.2}h2{font-size:18px;letter-spacing:-.4px;font-weight:650}h3{font-size:15px;font-weight:650}p{line-height:1.65}.muted{color:var(--muted)}.small-text{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;text-transform:uppercase;color:var(--muted)}.layout{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#fcfdf9;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 18px;z-index:15}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 26px}.brand img{width:42px;height:42px}.brand strong{display:block;font-size:23px;letter-spacing:2px}.brand span{display:block;font-size:10px;color:var(--muted);margin-top:3px;letter-spacing:.3px}.nav-label{padding:18px 14px 9px;font-size:10px;letter-spacing:1.8px;color:#89938c;font-weight:600}.nav-button{width:100%;justify-content:flex-start;border:0;background:transparent;padding:11px 14px;gap:12px;font-weight:500;color:#65736b;margin-bottom:3px;font-size:13px}.nav-button.active{background:var(--green);color:#fff;box-shadow:0 4px 12px #174f4220}.nav-button:hover{background:#edf2eb}.nav-button.active:hover{background:var(--green)}.sidebar-bottom{margin-top:auto;padding-top:25px}.side-note{padding:15px;background:#eef2e9;border-radius:12px;margin:0 7px 18px}.side-note .eyebrow{color:var(--green);margin-bottom:7px}.side-note p{font-size:11px;color:#728171}.user{display:flex;align-items:center;gap:9px;padding:10px}.avatar{width:35px;height:35px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:650;color:var(--green);background:#e8eee5;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user strong{font-size:12px;display:block}.user small{color:var(--muted);font-size:10px}.workspace{grid-column:2;min-width:0}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fcfdf9;gap:15px}.breadcrumb{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:9px}.breadcrumb strong{font-weight:500;color:var(--ink)}.top-actions{display:flex;gap:12px;align-items:center}.status-dot{width:6px;height:6px;border-radius:50%;background:#4a8e6c;display:inline-block;margin-right:5px}.content{padding:32px 40px 40px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-head p{color:var(--muted);font-size:13px;margin-top:8px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.month-select{background:white;padding:7px 10px;border:1px solid var(--line);border-radius:8px;min-width:145px;color:var(--ink)}.hero{border-radius:var(--radius);background:#174f42;color:white;padding:30px 32px;display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;overflow:hidden;margin-bottom:24px}.hero:after{content:'✝';position:absolute;right:38px;top:-34px;font-size:220px;color:#ffffff06;line-height:1.2;pointer-events:none}.hero .eyebrow{color:#b7d3be;margin-bottom:11px}.hero h2{font-size:27px;letter-spacing:-.7px;font-weight:500}.hero p{font-size:12px;color:#cfddd0;margin-top:10px;max-width:540px}.hero .primary{background:#f4edda;color:#284b38;border-color:transparent;z-index:1}.hero .hero-note{font-size:11px;color:#c4d7c8;margin-top:10px;text-align:right}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}.metric{padding:21px 22px;border:1px solid var(--line);background:white;border-radius:var(--radius);box-shadow:var(--shadow)}.metric-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.metric-icon{display:flex;align-items:center;justify-content:center;border-radius:10px;width:33px;height:33px;background:#eff3eb;color:var(--green)}.metric-value{font-size:31px;letter-spacing:-1px;margin:12px 0 6px;font-weight:600}.metric small{font-size:10px;color:var(--muted)}.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:22px;align-items:start}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:22px}.card-head{display:flex;align-items:center;justify-content:space-between;padding:22px 23px 18px;gap:12px}.card-head p{font-size:11px;color:var(--muted);margin-top:5px}.card-body{padding:0 23px 23px}.card-footer{border-top:1px solid var(--line);padding:13px 23px;font-size:11px;color:var(--muted);background:#fdfefa}.badge{padding:5px 9px;border-radius:6px;display:inline-block;font-size:10px;font-weight:600;white-space:nowrap;line-height:1.3;background:#eff2ed;color:#6a786b}.badge.green{background:#e9f3e9;color:#477344}.badge.amber{background:#fbf2df;color:#92722e}.badge.red{background:#faeae7;color:#ad5045}.badge.blue{background:#eef0fa;color:#6674a4}.event-row{display:flex;gap:15px;align-items:center;padding:17px 0;border-top:1px solid #edf0eb}.event-row:first-child{border-top:0}.date-tile{width:46px;min-width:46px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:7px 2px;background:#fbfcf8}.date-tile strong{display:block;font-size:21px;font-weight:550}.date-tile small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;margin-top:2px}.event-info{flex:1;min-width:0}.event-info p{font-size:10px;color:var(--muted);margin-top:5px}.event-info h3{font-size:12px}.row-end{margin-left:auto;text-align:right}.row-end small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.progress{accent-color:var(--green);height:7px;border:0;border-radius:5px;width:100%;display:block;overflow:hidden;background:#edf1e9}.progress::-webkit-progress-bar{background:#edf1e9;border-radius:5px}.progress::-webkit-progress-value{background:#437b5c;border-radius:5px}.progress::-moz-progress-bar{background:#437b5c}.balance-row{display:grid;grid-template-columns:33px 1fr 20px;align-items:center;gap:9px;margin-bottom:15px}.balance-row .avatar{width:29px;height:29px;font-size:10px}.balance-row strong{font-size:11px;font-weight:550}.balance-row .progress{margin-top:7px;height:5px}.balance-row span:last-child{text-align:right;font-size:12px;font-weight:600}.inline-note{background:#f3f6ef;border-radius:10px;padding:12px 14px;font-size:11px;line-height:1.6;color:#73806f;display:flex;align-items:flex-start;gap:9px}.inline-note svg{color:#7b956e;flex-shrink:0;margin-top:1px}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:19px;flex-wrap:wrap}.search{position:relative;min-width:220px;flex:1;max-width:370px}.search input{width:100%;padding-left:37px}.search svg{position:absolute;left:12px;top:11px;color:var(--muted)}input,select,textarea{border:1px solid #dbe2d8;border-radius:8px;padding:10px 12px;background:white;min-width:0;color:var(--ink)}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px;flex-shrink:0}input[type=number]{max-width:100%}textarea{resize:vertical;min-height:83px}input:focus,select:focus,textarea:focus{border-color:#6d927e;outline:2px solid #d8e9d4}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:550}label small{font-size:10px;font-weight:400;color:var(--muted)}.check-label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px;font-weight:400}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px;text-align:left}th{color:var(--muted);font-size:10px;font-weight:500;letter-spacing:.4px;background:#f8faf5;padding:13px 20px;border-bottom:1px solid var(--line)}td{padding:16px 20px;border-bottom:1px solid #edf1e9}tr:last-child td{border-bottom:0}.person-cell{display:flex;gap:11px;align-items:center}.person-cell strong{font-size:12px;display:block;font-weight:550}.person-cell small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.size-tag{display:inline-flex;width:27px;height:27px;border-radius:7px;background:#f1eee5;align-items:center;justify-content:center;color:#8a7954;font-size:11px;font-weight:650}.empty{text-align:center;padding:50px 25px;color:var(--muted)}.empty svg{width:31px;height:31px;color:#859a83;margin-bottom:13px}.empty h3{color:var(--ink);margin-bottom:9px}.empty p{font-size:12px;max-width:370px;margin:0 auto 18px}.grid-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.role-card{padding:24px}.role-card h3{margin:14px 0 7px}.role-card p{font-size:12px;color:var(--muted);margin-bottom:15px;min-height:39px}.role-card .role-data{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.schedule-card .card-head{background:#fbfcf8;border-bottom:1px solid var(--line)}.schedule-role{padding:17px 23px;border-bottom:1px solid #edf1e9}.schedule-role:last-child{border:0}.schedule-role h4{font-size:12px;display:flex;align-items:center;gap:8px;margin-bottom:12px}.slot{display:grid;grid-template-columns:1fr auto auto;gap:9px;margin-top:8px;align-items:center}.slot select{width:100%;font-size:12px;padding:9px}.slot .check-label{font-size:11px}.alert{padding:14px 17px;background:#fcf5e6;border:1px solid #ecdfbd;border-radius:10px;color:#8f733c;font-size:12px;line-height:1.6;margin-bottom:17px}.alert.error{background:#fdf0ec;color:#994c3d;border-color:#efd4cd}.alert.success{background:#edf5e9;color:#416c3f;border-color:#d9e6d1}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:22px}.weekday{text-align:center;background:#f7f9f3;font-size:10px;color:var(--muted);padding:12px}.calendar-day{min-height:105px;background:white;padding:9px;min-width:0}.calendar-day.blank{background:#f7f9f4}.day-number{font-size:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.day-number button{padding:0 3px;border:0;font-size:12px;color:#8d9d87;line-height:1.3}.calendar-event{width:100%;display:block;text-align:left;font-size:9px;padding:6px;background:#edf4eb;border:0;color:#3f7152;margin:4px 0;overflow:hidden;text-overflow:ellipsis;border-left:2px solid #70956c;border-radius:4px;white-space:nowrap}.calendar-event.published{background:#f8f1df;color:#9b7835;border-left-color:#c2a36b}.legend{display:flex;gap:15px;font-size:10px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .full{grid-column:1/-1}.check-grid{display:flex;flex-wrap:wrap;gap:10px 18px;border:1px solid var(--line);border-radius:9px;padding:13px}.needs-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.need-item{display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:10px;padding:8px 12px;background:#f5f7f1;border-radius:8px}.need-item input{width:65px;padding:6px}.section-label{margin:24px 0 12px;font-size:11px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:1px}dialog{border:0;border-radius:19px;padding:0;max-width:720px;width:calc(100% - 32px);max-height:90vh;color:var(--ink);box-shadow:0 25px 100px #142b3e40}dialog::backdrop{background:#142d2566;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:23px 26px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:19px}.dialog-head button{padding:5px;border:0}.dialog-body{padding:23px 26px;overflow-y:auto;max-height:65vh}.dialog-footer{padding:17px 26px;background:#fafbf7;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;align-items:center}.dialog-footer .danger{margin-right:auto}.form-error{color:var(--red);font-size:12px;line-height:1.5}.form-error:not(:empty){background:#fbede8;padding:11px;border-radius:7px;margin-bottom:15px}.toast-show{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#173f34;color:white;padding:14px 24px;z-index:99;border-radius:11px;box-shadow:0 8px 30px #123c3330;max-width:90%;font-size:13px}.auth-page{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:#f9faf5}.auth-art{background:#174f42;color:white;display:flex;flex-direction:column;justify-content:space-between;padding:55px;position:relative;overflow:hidden}.auth-art:after{content:'✝';font-size:440px;color:#ffffff06;position:absolute;bottom:-80px;right:-10px;pointer-events:none}.auth-art .brand{padding:0;color:white}.auth-art .brand span{color:#c6d5c3}.auth-art h1{font-size:49px;line-height:1.16;letter-spacing:-2px;font-weight:500;max-width:420px}.auth-art h1 em{color:#e1ca93;font-family:Georgia,serif;font-weight:400}.auth-art p{color:#bbd2bf;margin:24px 0;max-width:360px;font-size:13px}.auth-art footer{font-size:11px;color:#bad2bf;letter-spacing:1px}.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px}.auth-form{max-width:365px;width:100%}.auth-form h2{font-size:28px;margin-bottom:10px}.auth-form>p{color:var(--muted);font-size:13px;margin-bottom:30px}.auth-form label{margin-bottom:17px}.auth-form .primary{width:100%;margin-top:9px}.auth-form .small-text{margin-top:22px;text-align:center}.portal{max-width:1050px;padding:28px;margin:auto}.portal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:15px}.portal .brand{padding:0}.portal .hero{padding:32px}.portal .hero h1{font-size:34px}.portal-events{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.portal-event{margin-bottom:0}.portal-event .event-row{padding:0}.portal-team{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:0 23px 23px}.portal-team div{padding:10px 12px;background:#f6f8f2;border-radius:8px;font-size:12px}.portal-team small{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.portal-team .mine{background:#e8f1e1;border:1px solid #c5dbb9}.portal-notes{font-size:12px;color:var(--muted);padding:0 23px 20px;white-space:pre-wrap}.portal footer{text-align:center;font-size:11px;color:var(--muted);padding:26px 0}.notice{padding:18px 22px;background:#fbf5e7;border:1px solid #ece2ca;border-radius:12px;margin-bottom:17px}.notice h3{font-size:12px;margin-bottom:7px}.notice p{font-size:12px;color:#8d7a53;white-space:pre-wrap}.mobile-toggle{display:none}.mobile-only{display:none}.loading{padding:80px;text-align:center;color:var(--muted)}.settings-block{padding:24px}.settings-block h3{margin-bottom:9px}.settings-block>p{font-size:12px;color:var(--muted);margin-bottom:20px}.settings-block .actions{margin-top:17px}.history-details{white-space:normal;max-width:500px;font-size:11px;color:var(--muted)}.report-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.report-controls label{min-width:140px;flex:1}.photo-note{display:block;font-size:10px;color:var(--muted);margin-top:8px}.footer-line{display:flex;justify-content:space-between;font-size:10px;color:#939d91;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.stack{display:flex;flex-direction:column;gap:9px}.row{display:flex;align-items:center;gap:12px}.space-between{justify-content:space-between}.wrap{flex-wrap:wrap}.pre-wrap{white-space:pre-wrap}.text-link{background:transparent;border:0;color:var(--green);font-size:11px;padding:0;font-weight:600}.checklist{font-size:12px;line-height:2.2;color:var(--muted);padding-left:17px}.full-width{width:100%}.print-title{display:none}
@media(min-width:1600px){.content{padding-top:40px}.metrics{gap:22px}.metric{padding:25px}.two-col{gap:26px}}
@media(max-width:1150px){.sidebar{width:215px;padding:25px 12px}.layout{grid-template-columns:215px minmax(0,1fr)}.content{padding:28px 25px}.topbar{padding:0 25px}.metrics{gap:10px}.metric{padding:18px 16px}.grid-three{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.calendar-day{min-height:90px;padding:5px}.hero h2{font-size:23px}}
@media(max-width:760px){h1{font-size:25px}.layout{display:block}.sidebar{transform:translateX(-100%);transition:transform .2s;width:244px;box-shadow:10px 0 40px #173f3415}.sidebar.open{transform:translateX(0)}.workspace{width:100%}.topbar{padding:0 18px;height:65px}.mobile-toggle{display:inline-flex;padding:6px}.breadcrumb>span{display:none}.breadcrumb{gap:8px}.top-actions .small-text{display:none}.content{padding:25px 17px}.page-head{align-items:flex-start;margin-bottom:20px}.page-head>.actions{justify-content:flex-end;max-width:185px}.page-head>.actions button{font-size:11px;padding:8px}.month-select{min-width:138px;font-size:11px}.hero{padding:24px;display:block}.hero h2{font-size:24px;max-width:270px}.hero .actions{margin-top:20px}.hero .hero-note{text-align:left}.hero p{max-width:300px}.metrics{grid-template-columns:1fr 1fr;gap:12px}.metric{padding:18px}.metric-top{font-size:11px;gap:5px}.metric-icon{width:28px;height:28px}.metric-value{font-size:28px}.two-col{gap:0}.grid-three{grid-template-columns:1fr}.card-head{padding:20px 18px 15px}.card-body{padding:0 18px 20px}.card-head h2{font-size:16px}.calendar-day{min-height:75px;padding:3px}.calendar-event{font-size:8px;padding:5px 2px}.calendar .weekday{font-size:8px;padding:10px 0}.day-number{font-size:10px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.needs-list{grid-template-columns:1fr}.dialog-body{padding:20px;max-height:66vh}.dialog-head,.dialog-footer{padding:17px 20px}.slot{grid-template-columns:1fr auto}.slot select{grid-column:1/-1}.schedule-role{padding:16px 18px}.schedule-card .card-head{align-items:flex-start;flex-wrap:wrap}.auth-page{display:block}.auth-art{padding:25px}.auth-art h1,.auth-art p,.auth-art footer{display:none}.auth-art .brand{padding:0}.auth-panel{padding:40px 24px}.auth-form{max-width:400px}.portal{padding:20px 16px}.portal-top .brand span{display:none}.portal-top .brand strong{font-size:20px}.portal-top .actions button{padding:8px;font-size:11px}.portal-events{grid-template-columns:1fr}.portal .hero{padding:26px}.portal .hero h1{font-size:28px}.portal-team{padding:0 18px 18px}.footer-line span:last-child{display:none}.mobile-only{display:block}}
@media print{body{background:white}.sidebar,.topbar,.page-head .actions,.toolbar,.report-controls,button,.footer-line,.portal-top .actions,.hero .actions,.month-select,.no-print{display:none!important}.layout{display:block}.content,.portal{padding:0;max-width:100%}.hero{background:white!important;color:#173f34;padding:0 0 15px;margin:0;border-radius:0}.hero h1,.hero h2{font-size:22px!important}.hero p,.hero .eyebrow{color:#555}.hero:after{display:none}.card{box-shadow:none;break-inside:avoid;margin-bottom:15px;border:1px solid #ccc}.portal-events{display:block}.portal-event{margin:12px 0}.portal-team{grid-template-columns:1fr 1fr 1fr}.card-head{padding:16px}.metrics{gap:10px}.metric{padding:12px}.metric-value{font-size:23px}.table-wrap{overflow:visible}table{font-size:9px;white-space:normal}th,td{padding:8px}.badge{font-size:9px}.page-head{margin-bottom:15px}.print-title{display:block;margin-bottom:12px}dialog,#toast{display:none}.notice{break-inside:avoid}.auth-page{display:none}a{text-decoration:none}.portal footer{font-size:9px}}
