Files
meguri/static/app.css
T
Aleksandr BogomiakovandClaude 38105c65c2 Merge NEXT: planning, generation map and portable configuration on top of the OIDC access model
NEXT predates the access work, so the identity layer follows master: access comes from
configured groups, instance administrators replace the site administration, and accounts are
created by SSO or by an administrator. Kept from NEXT: manual publication with the Review
changes panel and shared generator drafts, portable import/export (meguri/v2), the layered
generation map with binding provenance, JSM provider changes, contact/approval semantics and
the account-owned Person. Dropped: site administration, local sign-up, and the mandatory
unique email with its contact/account migrations. The manual-publication migration is
renumbered m_0010 after m_0009_access.

Accounts without an email still get a Person in every workspace they reach, a changed sign-in
email updates the account's person, and an account that loses access keeps its linked person so
schedules stay valid. Instance administrators may use Sync and shared drafts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-07 16:06:10 +01:00

237 lines
85 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#243a36;background:#f7f9f8;font-size:14px;--green:#176b52;--ink:#233d35;--muted:#7d8a85;--line:#e3e9e5;--soft:#edf3ef}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:white;border:1px solid #dbe3de;border-radius:7px;padding:9px 13px;transition:background .15s}button:hover{background:#eef4f0}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--green);color:white;border-color:var(--green);font-weight:600}button.primary:hover{background:#12543f}button.text{border:0;background:none;padding:6px 3px;color:var(--green)}button.danger{color:#a55252}input,select,textarea{border:1px solid #d8e1da;border-radius:7px;background:white;padding:11px 12px;max-width:100%;outline:none}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #4f9d7e;outline-offset:2px}textarea{min-height:85px;resize:vertical}label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;margin:16px 0}label.check{flex-direction:row;align-items:center;font-weight:400;gap:9px}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}h1,h2,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;font-weight:600;margin-bottom:9px}h2{font-size:17px;letter-spacing:-.3px;font-weight:600;margin-bottom:12px}p{line-height:1.6}small{font-size:12px}.muted,small{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:#788b81}.brand{display:flex;align-items:center;gap:10px;color:#215b45;text-decoration:none;font-size:38px}.brand span{font-size:28px;font-weight:650;letter-spacing:-1px}.shell{display:flex;min-height:100vh}.sidebar{width:236px;padding:29px 21px 15px;background:#fff;border-right:1px solid var(--line);position:fixed;top:0;bottom:0;display:flex;flex-direction:column}.workspace-label{margin-top:38px;margin-bottom:11px}.workspace-select{width:100%;font-weight:600;background:#f6f8f6;padding:12px 10px}.sidebar nav{margin-top:24px;display:flex;flex-direction:column;gap:6px}.sidebar nav :is(button,a){display:flex;align-items:center;gap:12px;border:0;background:none;text-align:left;padding:13px 12px;color:#728179;font-size:13px}.sidebar nav :is(button,a).active{background:#eaf3ed;color:#236648;font-weight:600}.nav-icon{font-size:20px;width:21px;text-align:center;font-weight:400}.counter{margin-left:auto;background:#d8e8df;padding:1px 6px;border-radius:4px;font-size:11px}.sidebar-bottom{margin-top:auto}.side-note{display:flex;align-items:center;gap:7px;font-size:10px;color:#8a958e;margin:30px 0 22px}.status-dot{display:inline-block;width:7px;height:7px;background:#639b7c;border-radius:50%;flex-shrink:0}.account-button{display:flex;width:100%;gap:10px;text-align:left;padding:14px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:none}.account-button strong,.account-button small{display:block;margin:2px 0}.account-button>span:last-child{margin-left:auto;align-self:center;color:#8c9991}.avatar{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:600}.avatar.small{width:27px;height:27px;font-size:10px}.teal{background:#e3f2ed;color:#3d846b}.purple{background:#eee9f7;color:#8874aa}.amber{background:#fcf0da;color:#a27d39}.blue{background:#e6effa;color:#5b84b4}.rose{background:#f7e8eb;color:#ac7482}.signout{font-size:11px;margin-left:47px}.main{margin-left:236px;flex:1;min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.slash{margin:0 14px;color:#b7c1ba}.top-actions{display:flex;gap:20px;align-items:center}.content{max-width:1460px;margin:0 auto;padding:38px 40px 45px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.page-heading .eyebrow{margin-bottom:10px}.page-heading p{margin:0;font-size:13px}.sync-bar{display:flex;align-items:center;gap:9px;border:1px solid #dfe9e2;background:#eef5ef;border-radius:7px;padding:11px 15px;font-size:11px;margin-bottom:25px;flex-wrap:wrap}.sync-bar .muted{margin-left:8px}.sync-bar button{margin-left:auto;font-size:11px}.sync-problem{background:#fff4e8;border-color:#edd6bb}.amber-dot{background:#c2a268}.sync-error{color:#ac733d;max-width:480px;overflow-wrap:anywhere}.summary-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:18px;margin-bottom:24px}.summary-card{border:1px solid var(--line);border-radius:9px;background:#fff;padding:19px 22px;min-height:120px}.summary-card .eyebrow{display:block;margin-bottom:17px}.summary-card small{display:block;margin-top:5px}.person-line{display:flex;align-items:center;gap:12px}.person-line .avatar{width:42px;height:42px}.person-line strong{font-size:17px}.stat{font-size:23px;font-weight:600;letter-spacing:-.4px}.panel{background:white;border:1px solid var(--line);border-radius:9px}.calendar-panel{overflow:hidden}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:22px 23px}.calendar-toolbar h2{margin-bottom:5px}.calendar-toolbar .muted{font-size:11px}.toolbar-controls{display:flex;align-items:center;gap:12px}.toolbar-controls select{font-size:12px;padding:9px;max-width:210px}.segmented{display:flex}.segmented button{border-radius:0;font-size:12px;padding:8px 13px}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-radius:0 6px 6px 0}.segmented button+button{border-left:0}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfdfc;font-size:9px;font-weight:600;letter-spacing:1px;color:#8c978f;text-align:right}.weekdays span{padding:13px 16px}.day{position:relative;display:flex;flex-direction:column;align-items:stretch;text-align:left;min-height:113px;padding:13px 8px 10px;border-radius:0;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:white;gap:5px}.day:nth-child(7n){border-right:0}.day.weekend{background:#fbfcfb}.day:hover{background:#f1f6f2}.day.today{background:#f3f9f4}.day-date{align-self:flex-end;text-align:center;font-size:11px;width:23px;height:23px;line-height:23px;margin-bottom:5px}.today .day-date{background:var(--green);color:white;border-radius:50%}.assignment{display:flex;align-items:center;gap:6px;border-radius:4px;padding:7px;font-size:11px;min-width:0}.assignment span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.holiday{font-size:9px;color:#a07a39;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-footer{display:flex;justify-content:space-between;gap:10px;padding:15px 20px;font-size:10px;color:#8a978e}.calendar-footer strong{font-weight:500;color:#536d5f}.section-line{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:26px 0 15px}.section-line h2,.section-line p{margin:0}.section-line .text{font-size:11px}.people-row{display:flex;gap:12px;flex-wrap:wrap}.person-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:white;border-radius:30px;padding:6px 12px 6px 6px;font-size:12px}.person-chip small{font-size:10px;margin-left:6px}.rule-card .person-chip{padding:7px 12px}.page-footer{border-top:1px solid var(--line);margin:0 40px;padding:21px 0 25px;font-size:9px;letter-spacing:2px;color:#8fa196;display:flex;justify-content:space-between}.page-footer span{letter-spacing:.2px;font-size:10px}.card-grid,.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.rule-card{padding:24px}.rule-card>.eyebrow{display:block;margin-bottom:16px}.rule-card p{font-size:12px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:17px}.actions button{font-size:12px}.compact{padding:8px 22px}.compact>p{padding:15px 0}.list-row{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #edf0ed}.list-row:last-child{border:0}.list-row strong,.list-row small{display:block}.list-row small{margin-top:5px}.list-row button{font-size:11px}.grow{flex:1;min-width:0}.spaced{margin-top:24px}.info-note{background:#edf5f0;padding:14px;border-radius:7px;font-size:12px;color:#5d796a}.request-card{padding:20px 25px;margin-bottom:15px}.request-card>.section-line{margin-top:0}.badge{padding:5px 9px;border-radius:20px;font-size:10px;background:#eef0ef;color:#7b8880;text-transform:capitalize}.badge.pending{background:#faf0d9;color:#a17f32}.badge.applied{background:#e4f1e8;color:#3d7e57}.leg{display:flex;gap:14px;flex-wrap:wrap;border-left:2px solid #adcebb;padding-left:12px;font-size:12px}.empty{text-align:center;padding:65px 25px;color:#7d8e82}.empty h2{color:var(--ink)}.welcome{margin:60px auto;max-width:630px}.empty-symbol{font-size:90px;color:#78a88b;display:block;margin-bottom:30px}.policy-step{display:flex;gap:10px;align-items:center;margin:14px 0;font-size:12px}.policy-step small{margin-left:auto;font-size:10px}.minute{display:inline-flex;align-items:center;justify-content:center;border:1px solid #e1e7e2;background:#f6f8f5;min-width:38px;border-radius:5px;padding:7px;font-size:11px;color:#6c8372}.audit-row{padding:16px 0;border-bottom:1px solid var(--line)}.audit-row summary{display:flex;gap:12px;font-size:12px;cursor:pointer;align-items:center;flex-wrap:wrap}.audit-dot{background:#b8d3c2;border-radius:50%;width:7px;height:7px}.audit-row summary span:not(.audit-dot){color:#7d8e82}.audit-row time{margin-left:auto;color:#8e9b91;font-size:11px}pre{background:#f4f7f3;border-radius:5px;padding:15px;font-size:11px;overflow:auto;max-height:300px}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#163b2b70;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:25px;overflow:auto}.modal{background:#fff;border:1px solid #e0e8df;border-radius:13px;box-shadow:0 24px 90px #15392930;width:640px;max-width:100%;max-height:calc(100vh - 50px);overflow:auto;padding:28px}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.modal-heading h2{font-size:24px;margin:8px 0 0}.icon-button{border:0;font-size:24px;background:none;padding:4px 10px}.modal-footer{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:20px;margin-top:25px;flex-wrap:wrap}.modal-footer button{font-size:12px}.modal .two-columns{gap:15px}.modal .list-row{padding:8px 0}.step-editor{border:1px solid var(--line);padding:0 15px 12px;border-radius:8px;margin:15px 0}.condition-editor{display:flex;gap:5px;flex-wrap:wrap;margin:15px 0}.condition-editor input:not([type=checkbox]){width:130px}.condition-editor select{max-width:120px;font-size:12px;padding:8px}.days-select{display:flex;flex-wrap:wrap;gap:13px}.secret-key{display:block;font-size:11px;overflow-wrap:anywhere}.error,.toast{position:fixed;right:24px;top:18px;max-width:min(540px,calc(100vw - 48px));padding:15px 20px;border-radius:8px;z-index:100;box-shadow:0 5px 30px #203d2920;font-size:13px}.error{background:#fff3ee;color:#a04e34;border:1px solid #e9c6b9;display:flex;align-items:center;gap:15px}.error button{border:0;background:none;font-size:20px;color:inherit;padding:0}.toast{background:#e5f2e9;border:1px solid #bfd9c7;color:#386f49;top:auto;bottom:25px}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#fff}.login-story{background:#eaf2eb;display:flex;flex-direction:column;justify-content:space-between;padding:55px 65px;min-height:100vh;background-image:radial-gradient(ellipse at 0 100%,#bad7c0aa,transparent 70%)}.login-story h1{font-size:49px;font-weight:500;line-height:1.18;letter-spacing:-2px;margin-top:24px}.login-story p{color:#6c8975;max-width:380px;font-size:15px;line-height:1.8}.quiet{font-size:11px;color:#799480}.login-form{max-width:360px;width:calc(100% - 60px);align-self:center;justify-self:center;padding:40px 0}.login-form h2{font-size:29px;margin:20px 0 8px}.login-form>label:first-of-type{margin-top:35px}.login-form .primary{width:100%;margin-top:12px;padding:13px}.login-form>.text{display:block;margin:18px auto;font-size:12px}.demo-note{background:#f5f8f3;border:1px dashed #d2decb;padding:12px;font-size:11px;line-height:1.8;color:#728267;margin-top:30px}.loading{padding:40px;text-align:center;color:#7d8e82}[x-cloak]{display:none!important}
@media(min-width:1600px){.content{padding-top:48px}.day{min-height:130px}}@media(max-width:1200px){.sidebar{width:210px;padding:25px 16px}.main{margin-left:210px}.content{padding:28px 24px}.topbar{padding:0 24px}.page-footer{margin:0 24px}.summary-card{padding:18px 15px}.person-line strong{font-size:15px}.toolbar-controls{gap:7px}.calendar-toolbar{padding:18px 15px}.day{padding:9px 5px;min-height:102px}.assignment{padding:6px 4px;font-size:10px}}@media(max-width:950px){.sidebar{width:75px;padding:23px 10px}.sidebar .brand span,.workspace-label,.workspace-select,.sidebar nav button>span:not(.nav-icon),.side-note,.account-button>span:not(.avatar),.signout{display:none}.sidebar nav{margin-top:40px}.sidebar nav :is(button,a){padding:12px;justify-content:center}.sidebar .brand{justify-content:center}.main{margin-left:75px}.sidebar .account-button{justify-content:center}.summary-grid{gap:10px}.summary-card{padding:15px 12px}.page-heading h1{font-size:25px}.page-heading>.primary{font-size:12px}.top-actions{gap:10px}.login-story{padding:40px}.login-story h1{font-size:38px}}@media(max-width:700px){.sidebar{position:sticky;top:0;width:100%;height:auto;z-index:10;flex-direction:row;align-items:center;gap:10px;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:29px}.sidebar nav{margin:0;flex-direction:row;gap:0;flex:1;justify-content:center}.sidebar nav :is(button,a){padding:8px}.sidebar .nav-icon{font-size:20px;width:18px}.sidebar-bottom{margin:0}.account-button{padding:0;border:0}.account-button .avatar{width:28px;height:28px;font-size:10px}.shell{display:block}.main{margin:0}.topbar{height:auto;min-height:57px;padding:10px 15px;gap:10px;flex-wrap:wrap}.topbar strong{font-size:11px}.top-actions{margin-left:auto}.top-actions button{font-size:10px}.content{padding:25px 15px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:27px}.page-heading p{font-size:12px}.summary-grid{grid-template-columns:1fr 1fr}.summary-card:first-child{grid-column:1/-1}.summary-card{min-height:100px}.summary-card .eyebrow{margin-bottom:13px}.calendar-toolbar{flex-wrap:wrap;padding:16px 12px}.toolbar-controls{width:100%;justify-content:space-between}.toolbar-controls select{max-width:165px}.weekdays span{padding:10px 3px;text-align:center;font-size:8px}.day{min-height:90px;padding:6px 3px}.day-date{font-size:10px;width:20px;height:20px;line-height:20px;margin-bottom:4px}.assignment{font-size:9px;padding:6px 3px;gap:3px}.mini-dot{display:none}.calendar-footer{padding:12px;flex-direction:column;font-size:9px}.two-columns,.card-grid{grid-template-columns:1fr}.modal .two-columns{grid-template-columns:1fr 1fr}.sync-bar{font-size:10px;padding:10px}.sync-bar .muted{margin-left:0}.page-footer{margin:0 15px;gap:20px}.page-footer span{font-size:9px;letter-spacing:0}.section-line h2{font-size:15px}.rule-card{padding:20px}.login{grid-template-columns:1fr}.login-story{min-height:0;padding:28px 30px}.login-story>div{display:none}.login-story .quiet{margin-top:14px}.login-form{padding:35px 0}.modal-backdrop{padding:12px}.modal{padding:20px;max-height:calc(100dvh - 24px)}.modal-heading h2{font-size:22px}.modal-footer button{font-size:11px;padding:9px}.audit-row summary{font-size:11px}.audit-row time{margin-left:0}}
.mobile-workspace-select{display:none}@media(max-width:950px){.mobile-workspace-select{display:block;max-width:210px}}@media(max-width:700px){.mobile-workspace-select{width:100%;max-width:100%}}
/* People, country calendars, and readable policy flows. */
.person-select{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;min-height:44px}.wide{width:100%;margin-top:15px}.picker-results{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px}.picker-option{display:flex;align-items:center;gap:12px;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;padding:13px}.picker-option>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.picker-option strong,.picker-option small{display:block}.picker-option small{margin-top:5px}.picker-option .badge{font-size:9px}.email-contact{margin-top:20px;padding:18px;background:#f3f7f4;border-radius:8px}.person-picker .section-line{margin-top:0}.person-picker h3{margin:0}.person-picker .primary{overflow-wrap:anywhere;max-width:100%}.holiday-group{margin:12px 0 18px}.holiday-group h3{display:flex;gap:8px;align-items:center;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:12px}.holiday-group .list-row{padding:10px 0}.csv-input{min-height:200px;font-family:Consolas,monospace;font-size:12px;line-height:1.6}.import-summary{display:flex;gap:10px;flex-wrap:wrap;padding:15px;background:#eaf4ed;border-radius:8px;font-size:12px}.import-summary strong{color:var(--green)}.import-table{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px}.import-table>div{display:grid;grid-template-columns:1fr 100px 1.5fr;gap:10px;padding:10px;border-bottom:1px solid var(--line);font-size:12px;overflow-wrap:anywhere}.import-table-head{background:#f2f6f2;font-weight:600;position:sticky;top:0}.validation-error,.validation-warning{padding:9px 12px;border-radius:6px;font-size:12px}.validation-error{background:#fff0eb;color:#9c492f}.validation-warning{background:#fff6e5;color:#806136}.danger-text{color:#9c492f}.flow-origin{display:inline-block;border:1px dashed #a9c4b2;color:#678373;border-radius:20px;padding:7px 12px;font-size:11px}.flow-arrow{color:#789184;font-size:11px;padding:9px 0;display:flex;gap:10px;align-items:center}.flow-arrow>span:first-child{font-size:22px;line-height:1}.flow-node{display:flex;align-items:center;gap:11px;background:#f3f7f4;border:1px solid #dce8df;border-radius:8px;padding:13px;font-size:12px}.step-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#dcecdf;color:#407553;font-size:11px;flex-shrink:0}.escalation-flow{margin:18px 0}.coverage-flow>div{display:flex;align-items:center;gap:10px;font-size:12px}.coverage-flow b{display:inline-grid;place-items:center;width:23px;height:23px;background:#edf3ef;border-radius:50%;font-size:11px}.coverage-flow small{margin-left:auto}.coverage-flow .flow-arrow{padding-left:7px}.routing-list{display:grid;gap:12px}.routing-card{padding:18px 21px}.route-heading{display:flex;align-items:center;gap:12px}.route-heading button{font-size:11px}.route-flow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:15px;font-size:12px}.logic-key{font-size:10px;font-weight:700;letter-spacing:1px;color:#468364}.logic-conditions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;flex:1;min-width:140px}.condition-chip{display:inline-block;padding:7px 9px;border:1px solid #dae5df;border-radius:5px;background:#f5f8f6;overflow-wrap:anywhere;max-width:100%;font-size:11px}.condition-chip.hours{background:#f9f3e8;color:#967444;border-color:#ebdec3}.condition-group{display:inline-flex;align-items:center;gap:7px;max-width:100%}.logic-and{font-size:9px;font-weight:700;color:#93a399;letter-spacing:.5px}.route-result{padding:9px 12px;border-radius:6px;background:#eaf3ed;color:#33744e;font-weight:600;max-width:100%;overflow-wrap:anywhere}.horizontal{font-size:23px}.logic-editor{background:#f7f9f7;border:1px solid #e0e8e1;border-radius:9px;padding:15px;margin-top:20px}.logic-header{display:flex;gap:10px;align-items:center;font-size:12px;flex-wrap:wrap}.condition-editor{display:grid;grid-template-columns:32px minmax(75px,1fr) minmax(85px,1fr) minmax(90px,1.1fr) auto 28px;gap:6px;align-items:center;margin:12px 0}.condition-editor select,.condition-editor input:not([type=checkbox]){width:100%;max-width:none;font-size:11px;padding:8px 6px;min-width:0}.condition-editor label{margin:0;font-size:11px;gap:4px}.condition-editor button{padding:5px}.day-clock{font-size:9px;color:#899b8e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day{min-height:135px}.rule-card p,.list-row strong{overflow-wrap:anywhere}.step-editor .flow-arrow{border-bottom:1px solid var(--line);margin-top:12px}.modal details summary{cursor:pointer;font-size:12px;color:var(--green);margin:10px 0}.section-line .actions{margin-top:0}.display-zone{font-size:10px;color:#6f8779}.topbar{flex-wrap:wrap;gap:8px}.topbar .top-actions{margin-left:auto}
@media(max-width:700px){.condition-editor{grid-template-columns:1fr 1fr 1fr}.condition-editor>.logic-and{grid-column:1/-1}.condition-editor label{justify-self:start}.condition-editor button{justify-self:end}.condition-editor input:not([type=checkbox]){grid-column:3}.route-flow{gap:8px}.logic-conditions{flex-basis:80%}.routing-card{padding:15px}.route-result{font-size:11px}.import-table>div{grid-template-columns:75px 85px 1fr;font-size:10px}.day-clock{font-size:7px}.day{min-height:100px}.picker-option{padding:10px 7px}.picker-option .badge{display:none}.coverage-flow>div{flex-wrap:wrap}.coverage-flow small{margin-left:0}}
/* Configuration graph operations. */
.drag-handle{padding:5px 7px;font-size:22px;line-height:1;border-color:transparent;background:transparent;color:#8ba292;cursor:grab;touch-action:manipulation}.drag-handle:active{cursor:grabbing}.route-moves{display:flex;gap:3px}.move-route{padding:5px 8px;font-size:13px!important}.move-route:disabled{cursor:default;opacity:.3}.routing-card{position:relative;transition:opacity .15s,box-shadow .15s}.route-dragging{opacity:.4}.routing-card.drop-before:before,.routing-card.drop-after:after{content:'';position:absolute;height:3px;left:0;right:0;background:#2e8b60;border-radius:3px}.routing-card.drop-before:before{top:-8px}.routing-card.drop-after:after{bottom:-8px}.route-heading .route-position{min-width:28px;padding:6px}.route-heading .grow{overflow-wrap:anywhere}.dependency-list{border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin:16px 0}.dependency-list h3{font-size:12px;color:#68816f;margin:0 0 8px}.dependency-list .list-row{font-size:12px}.removal-preview .validation-warning p{margin:7px 0 0;font-weight:600}button.primary.remove-confirm{background:#985b45;border-color:#985b45}.removal-preview p{font-size:13px}.removal-preview .badge{white-space:nowrap}
@media(max-width:700px){.route-heading{flex-wrap:wrap;gap:7px}.route-heading .grow{flex-basis:calc(100% - 70px)}.route-heading .route-moves{margin-left:auto}.dependency-list .list-row{align-items:flex-start;flex-wrap:wrap}.removal-preview .badge{font-size:9px}}
.date-field{display:flex;position:relative;align-items:stretch;min-width:0}.date-field>input[type=text]{width:100%;min-width:0;border-radius:7px 0 0 7px}.date-field>button{border-left:0;border-radius:0 7px 7px 0;padding:8px 11px}.date-field .native-date{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;bottom:0;right:0;pointer-events:none}.holiday-group>summary{display:flex;align-items:center;gap:10px;cursor:pointer;padding:17px 0;font-weight:600;list-style:none}.holiday-group>summary::before{content:'▸';color:var(--muted)}.holiday-group[open]>summary::before{content:'▾'}.holiday-group>summary .badge{margin-left:auto}.absence-range{padding:0 14px 12px;border:1px solid var(--line);border-radius:8px;margin:14px 0}.absence-preview{border-top:1px solid var(--line);margin-top:22px;padding-top:8px}.impact-scroll{overflow-x:auto}.impact-table{width:100%;border-collapse:collapse;font-size:12px}.impact-table th{text-align:left;color:var(--muted);font-weight:500}.impact-table td,.impact-table th{padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}.impact-table small{display:block;font-size:10px;line-height:1.6;margin-top:5px}.impact-table td:first-child{min-width:160px}.impact-table td{overflow-wrap:anywhere}.preview-count{font-size:12px;color:var(--green)}
/* Typed workspace data and generation preview. */
.wide-modal{width:100%;max-width:1000px}.generation-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.generation-toolbar .info-note{flex-basis:45%;margin:0}.generation-panel{padding:22px;min-width:0}.generation-panel .section-line{margin-top:0}.generation-panel>p{font-size:12px;line-height:1.6}.generation-columns{align-items:start}.variable-card{display:flex;align-items:center;gap:7px;padding:16px 0;border-top:1px solid var(--line);font-size:13px}.variable-card .grow{min-width:0;overflow-wrap:anywhere}.variable-card small{display:block;margin-top:6px;color:var(--muted);font-size:10px}.variable-card button{font-size:10px;padding:7px}.generation-preview{margin-top:18px}.data-tree{border:1px solid var(--line);border-radius:8px;overflow:hidden}.data-row{display:grid;grid-template-columns:minmax(80px,1fr) 130px minmax(180px,2fr) 92px;gap:8px;align-items:center;padding:10px;border-bottom:1px solid var(--line);background:#fafcf9}.data-row input,.data-row select{min-width:0;width:100%;font-size:12px}.data-key{font-size:12px;color:var(--muted)}.data-value{min-width:0}.data-depth-1{padding-left:24px}.data-depth-2{padding-left:40px}.data-depth-3,.data-depth-4,.data-depth-5,.data-depth-6,.data-depth-7,.data-depth-8{padding-left:56px}.data-actions{display:flex;gap:3px}.data-actions button{padding:5px}.data-value .actions{margin:0;flex-wrap:wrap}.data-value .actions button{padding:7px;font-size:11px}.person-value{display:grid;gap:7px}.bulk-editor,.binding-editor{background:#edf5ef;border:1px solid #c9dfce;border-radius:10px;padding:18px;margin:18px 0}.bulk-editor h3,.binding-editor h3{font-size:15px}.bulk-editor textarea{width:100%}.binding-button{text-align:left;width:100%;color:#34744f;background:#f0f7f1;border-color:#d6e6d8;overflow-wrap:anywhere;line-height:1.5;min-width:0}.binding-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.binding-grid label{min-width:0}.generation-block{border:1px solid var(--line);border-radius:10px;padding:18px;margin:18px 0}.iteration-row,.generation-step{display:flex;gap:8px;align-items:center;margin:13px 0}.iteration-row>*{min-width:0}.iteration-row>input{max-width:150px}.generation-step{flex-wrap:wrap}.generation-step .binding-button{width:auto}.generation-step .grow{flex:1}.generation-step select{font-size:11px;max-width:180px}.generation-step .check{margin:0}.binding-source{padding:0 4px}.binding-key{margin:14px 0 0 16px;padding-left:16px;border-left:2px solid #b5d2be}.priority-person{margin:14px 0}.demo-note dl{margin:8px 0}.demo-note dl>div{display:flex;gap:12px}.demo-note dt{min-width:34px;font-weight:600}.demo-note dd{margin:0}.demo-note{font-size:11px;line-height:1.8}
@media(max-width:900px){.generation-columns{grid-template-columns:1fr}.data-row{grid-template-columns:80px 110px minmax(100px,1fr)}.data-actions{grid-column:3;justify-content:flex-end}.iteration-row{flex-wrap:wrap}.iteration-row .binding-button{flex-basis:100%}}
@media(max-width:700px){.wide-modal .two-columns,.binding-grid{grid-template-columns:1fr}.data-row{grid-template-columns:1fr 1fr;padding:12px}.data-value{grid-column:1/-1}.data-actions{grid-column:2}.data-depth-1{border-left:8px solid #e6eee8}.data-depth-2,.data-depth-3{border-left:16px solid #e6eee8}.generation-toolbar>button{flex:1}.generation-block{padding:12px}.generation-panel{padding:15px}.variable-card{flex-wrap:wrap}.variable-card .grow{flex-basis:50%}.binding-key{margin-left:5px;padding-left:10px}.sidebar nav :is(button,a){padding:6px}.sidebar .nav-icon{font-size:18px;width:17px}}
.demo-banner{position:sticky;top:0;z-index:40;background:#fff4d9;border-bottom:1px solid #dfc68e;padding:10px 22px;color:#725624;font-size:11px;line-height:1.6}.demo-banner>div{display:flex;gap:8px 20px;flex-wrap:wrap}.demo-banner strong{font-weight:700}.demo-protection{margin:5px 0 0;border-left:3px solid #b36040;padding-left:10px;color:#8a4229}.demo-mode .sidebar{top:var(--demo-offset,0px);height:calc(100dvh - var(--demo-offset,0px))}@media(max-width:700px){.demo-banner{padding:8px 12px;font-size:10px}.demo-banner>div{gap:3px 10px}.demo-mode .sidebar{height:auto}}
@media(min-width:701px){.sidebar{overflow-y:auto}.sidebar-bottom{padding-top:20px}}
/* Daily collaboration has one primary action; setup is a separate destination. */
.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.sidebar nav .setup-toggle{margin-top:20px;border-top:1px solid var(--line);border-radius:0;padding-top:20px}.setup-nav{padding-left:20px;border-left:1px solid var(--line);margin-left:20px}.sidebar nav .setup-nav :is(button,a){width:100%;padding:10px;font-size:12px}.daily-overview{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.today-card{background:white;border:1px solid var(--line);padding:20px 22px;border-radius:12px;display:flex;flex-direction:column;gap:13px}.today-card .person-line small,.today-card>small{display:block;margin-top:5px;line-height:1.6}.attention-panel{background:#fff;border:1px solid #bdd8cb;border-radius:12px;padding:0 20px;margin-bottom:24px}.reply-row{display:flex;align-items:center;gap:14px;padding:18px 0;border-top:1px solid var(--line)}.reply-row small{display:block;margin:7px 0;line-height:1.6}.reply-row p{margin:8px 0 0}.reply-row .actions{flex-shrink:0;margin:0}.waiting-line{display:flex;align-items:center;gap:15px;margin-bottom:18px;font-size:12px;color:var(--muted)}.action-comment{font-size:13px;border-left:2px solid #cadbce;padding-left:10px;overflow-wrap:anywhere}.page-heading .actions{margin:0}.schedule-control{position:relative}.schedule-trigger{min-width:180px;display:flex;justify-content:space-between;gap:12px;font-weight:600}.schedule-picker{position:absolute;right:0;top:45px;width:280px;padding:12px;background:white;box-shadow:0 8px 28px #142a2825;border:1px solid var(--line);border-radius:10px;z-index:15}.schedule-picker input{width:100%}.schedule-results{max-height:240px;overflow:auto;margin-top:8px}.schedule-results button{width:100%;display:block;text-align:left;border:0;padding:12px}.chosen{background:#e6f2eb!important;border-color:#548b6b!important;color:#19513a!important}.day{transition:background .15s,box-shadow .15s}.day:hover{background:#edf5ef;box-shadow:inset 0 0 0 1px #b5cebc}.shift-ticket{background:#f3f7f4;border:1px solid #dce6df;border-radius:12px;padding:18px;margin:16px 0 22px}.shift-ticket .person-line .badge{margin-left:auto}.shift-times{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:15px;border-top:1px solid #dde7e0}.shift-times strong{display:block;font-size:12px;margin-top:6px}.shift-times>span{color:#85968a}.cover-self{display:flex;align-items:center;gap:12px;margin:18px 0;flex-wrap:wrap}.cover-options{display:flex;gap:8px;flex-wrap:wrap;max-height:190px;overflow:auto}.cover-options button{display:flex;align-items:center;gap:8px;padding:10px 13px}.selection-tick{color:var(--green);font-weight:bold}.range-options{margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px 0}.range-options>summary{padding:8px 0;font-weight:500}.request-ready{font-size:12px;background:#f0f7f1;padding:12px;border-radius:8px;line-height:1.6}.request-ready small{display:block;margin-bottom:6px;font-size:10px}.cover-footer{flex-wrap:wrap;gap:8px}.cover-footer .primary{margin-left:auto}.force-action{color:#82633e;font-size:11px}.shift-option{display:flex;flex-direction:column;gap:10px;width:100%;text-align:left;margin:12px 0}.simple-list-row{display:flex;gap:8px;align-items:center;margin:12px 0}.simple-list-row input{flex:1;min-width:0}.simple-list-row button{padding:6px 9px}.matrix-head,.matrix-row{display:grid;grid-template-columns:150px 1fr 24px;gap:14px;align-items:center}.matrix-head{font-size:11px;color:var(--muted);padding:12px 0}.matrix-row{padding:16px 0;border-top:1px solid var(--line)}.matrix-row input{width:100%;min-width:0}.matrix-people{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.matrix-person{display:flex;align-items:center;gap:7px;border-radius:7px;background:#edf4ef;padding:7px 9px;font-size:12px}.matrix-person b{color:#84978a;font-weight:500;font-size:10px}.matrix-person button{padding:0 3px;background:none;border:0;color:#75917d}.inline-people{background:#f3f7f4;border-radius:10px;padding:16px;margin:16px 0}.inline-people input{width:100%;margin:10px 0}.inline-people .section-line{margin:0}.data-mode{margin:14px 0}.modal-heading .eyebrow{font-size:9px}.modal-footer{position:sticky;bottom:-28px;background:white;padding-bottom:18px;z-index:5}.modal{scrollbar-gutter:stable}.request-card .action-comment{margin-top:10px}
@media(max-width:950px) and (min-width:701px){.sidebar .setup-nav{position:fixed;left:74px;top:calc(var(--demo-offset,0px) + 240px);background:white;box-shadow:0 6px 20px #20392c25;padding:12px;margin:0;width:210px;border-radius:8px;z-index:20}.sidebar nav .setup-toggle{justify-content:center}}
@media(max-width:700px){.sidebar nav .setup-toggle{margin:0;border:0;padding:8px}.sidebar .setup-nav{position:absolute;right:10px;top:55px;width:220px;padding:12px;margin:0;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 25px #1f372925}.sidebar nav .setup-nav :is(button,a){display:block;text-align:left;padding:12px}.sidebar nav>button span:not(.nav-icon){display:none}.daily-overview{grid-template-columns:1fr;gap:10px}.today-card{padding:16px}.reply-row{flex-wrap:wrap;align-items:flex-start}.reply-row>.grow{width:calc(100% - 60px)}.reply-row>.actions{margin-left:50px}.attention-panel{padding:0 14px}.shift-times{align-items:flex-start;flex-direction:column;gap:10px}.shift-times>span{display:none}.shift-times>div{display:flex;justify-content:space-between;gap:10px;width:100%}.shift-times strong{margin:0}.cover-footer .force-action{order:3;width:100%;border:0}.cover-footer .primary{flex:1}.modal-footer{bottom:-20px}.schedule-picker{left:0;right:auto;width:min(280px,calc(100vw - 55px))}.matrix-head{display:none}.matrix-row{grid-template-columns:1fr 24px;gap:10px}.matrix-people{grid-column:1/-1;grid-row:2}.matrix-row>button{grid-column:2;grid-row:1}.simple-list-row{gap:4px}.simple-list-row button{padding:5px}.simple-list-row .step-number{display:none}.top-actions>.text,.top-actions>button{font-size:10px}.cover-options button{font-size:12px}.cover-sheet .two-columns{grid-template-columns:1fr}.day-clock{display:none}.day{min-height:85px}}
.shift-ticket .person-line small{display:block;margin-top:5px}.request-ready>span{display:block;font-weight:500;color:var(--green)}
.sidebar nav a{text-decoration:none;border-radius:7px}.sidebar nav a:focus-visible{outline:2px solid #4f9d7e;outline-offset:2px}.setup-section{scroll-margin-top:150px;margin-bottom:38px}.generated-group{border-top:1px dashed #baccc2;margin-top:24px;padding-top:18px}.generated-group>h3{font-size:12px;color:var(--muted);font-weight:500}.generated-resource{background:#f3f6f5;box-shadow:none}.manual-resource{border-left:3px solid #59977c}.resource-origin{display:block;font-size:10px;color:#667b70;margin-bottom:10px}
.recipe-section{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.recipe-section h3{display:flex;align-items:center;gap:10px;font-size:15px}.recipe-number{display:inline-flex;width:25px;height:25px;align-items:center;justify-content:center;background:#e3eee8;color:#236648;border-radius:50%;font-size:12px}.advanced-rule{font-size:12px;color:#687e71;margin:12px 0}.advanced-rule summary{cursor:pointer}.recipe-field{min-width:0}.recipe-field>label{margin:12px 0 6px}.recipe-field>select,.recipe-field .inline-value{width:100%}.recipe-field .inline-value{margin-top:7px}.binding-tweak{font-size:11px!important}.recipe-example{background:#f3f7f4;border-radius:9px;padding:16px}.recipe-example table{width:100%;font-size:12px;border-collapse:collapse;text-align:left}.recipe-example td,.recipe-example th{padding:9px 8px;border-bottom:1px solid var(--line)}
.coverage-problems{border-color:#e5c9a8;background:#fffbf5}.coverage-issue-list{max-height:230px;overflow:auto}
.setup-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}.setup-jumps a{padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--green);text-decoration:none;font-size:12px;background:white}
.recipe-number{flex-shrink:0}.rule-identity{grid-template-columns:minmax(0,1fr) auto!important;align-items:end}.rule-identity .check{margin-bottom:25px}@media(max-width:640px){.recipe-section>.section-line{flex-direction:column;align-items:stretch;gap:4px}.recipe-section>.section-line>select{width:100%}.recipe-section h3{margin:0 0 12px}.recipe-section{margin-top:12px;padding-top:14px}.rule-identity{gap:12px!important}}
.cover-range{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.cover-boundary{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:14px}.cover-boundary label{margin:10px 0}.cover-boundary input{min-width:0;width:100%}.modal-footer{flex-wrap:wrap}.generation-live-status{flex-basis:100%;width:100%;padding:10px 12px;border-radius:7px;background:#edf5ef;font-size:12px}.generation-live-status.has-errors{background:#fff0ed;color:#913d32;border:1px solid #e9beb5}.validation-status-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.validation-status-line button{font-size:11px;padding:5px 8px}.validation-first{margin:6px 0 0;line-height:1.4;overflow-wrap:anywhere}.generation-live-errors{max-height:150px;overflow:auto}.generation-live-errors p{line-height:1.4;overflow-wrap:anywhere}.generation-live-status .validation-first{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:500px){.cover-boundary{grid-template-columns:minmax(0,1fr) 110px;gap:10px}.generation-live-errors{max-height:100px}}
.recipe-field>div>select{width:100%}.name-composer{display:flex;align-items:center;min-width:0;border:1px solid #d8e1da;border-radius:7px;background:white;overflow:hidden}.name-composer:focus-within{outline:2px solid #4f9d7e;outline-offset:2px}.recipe-field .name-composer>select{flex:0 1 46%;width:46%;min-width:0;border:0;border-right:1px solid #d8e1da;border-radius:0;background:white;padding:11px 8px;text-overflow:ellipsis}.recipe-field .name-composer>.inline-value{flex:1 1 54%;width:54%;min-width:0;margin:0;border:0;border-radius:0;padding:11px 8px}.name-composer>input:focus,.name-composer>select:focus{outline:none}.name-composer>.name-prefix{flex:0 1 25%;width:25%;min-width:0;border:0;border-radius:0;padding:11px 6px}
.binding-value-preview{margin:16px 0;padding:12px;background:#f3f7f4;border:1px solid var(--line);border-radius:8px;min-width:0}.binding-value-preview .section-line{margin:0 0 8px;gap:8px;flex-wrap:wrap}.binding-value-preview strong{font-size:12px}.binding-value-preview small{font-size:11px;color:#65796d;overflow-wrap:anywhere}.binding-value-preview textarea{display:block;width:100%;box-sizing:border-box;height:116px;min-height:80px;max-height:240px;resize:vertical;overflow:auto;white-space:pre;font:12px/1.5 Consolas,"Courier New",monospace;background:#fff;color:#244332;margin:0;padding:10px}.binding-value-preview .validation-warning{margin-bottom:0}
.template-token{font-family:Consolas,"Courier New",monospace!important;font-size:12px;letter-spacing:0;font-weight:500;color:#285c48;background:#edf5f0;border-radius:5px}.binding-template{display:block;padding:8px 10px;overflow-wrap:anywhere;margin:12px 0}.route-heading .template-token{padding:5px 8px}
/* Schedule setup: sources and review, contiguous resources, occasional calendar maintenance. */
#generation .setup-intro{margin:24px 0 18px}#generation .setup-intro h2{font-size:20px;margin-bottom:6px}#generation .setup-intro p{margin:0}#generation .generation-columns{grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:18px;align-items:start}#generation .generation-panel{padding:20px}#generation .variable-card{gap:8px;padding:12px 0}#generation .variable-card .grow{min-width:0}#generation .variable-card strong{overflow-wrap:anywhere}#generation .variable-card button{padding:7px 9px;font-size:11px}#generation .section-line{margin-top:0}.generation-review-bar{margin-top:18px;border:1px solid var(--line);border-radius:9px;background:#fff}.generation-review>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;padding:15px 18px;font-size:13px;list-style:disclosure-closed}.generation-review .review-status{font-size:12px}.generation-review[open]>summary{border-bottom:1px solid var(--line)}.review-body{padding:16px 18px}.review-body .generation-preview>h3{display:none}.review-actions{border-top:1px solid var(--line);padding:12px 18px;justify-content:flex-end}.setup-resources{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.setup-resources>.section-line{margin-top:0}.section-count{font-size:12px;color:var(--muted);font-weight:400;margin-left:10px}.setup-resources .rule-card{padding:18px}.setup-resources .rule-card h2{font-size:16px}.setup-resources .generated-group{margin-top:18px;padding-top:16px}.setup-resources .generated-group>h3{font-size:11px;color:var(--muted);letter-spacing:.5px}.setup-resources .escalation-flow{margin:12px 0}.setup-availability{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.setup-utilities{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.setup-widget{background:#fff;border:1px solid var(--line);border-radius:9px;padding:16px 18px;min-width:0}.widget-heading{display:flex;gap:10px;align-items:center}.widget-heading h3{font-size:14px;margin:0}.widget-heading button{margin-left:auto}.setup-widget>p{font-size:12px;margin:12px 0 0}.holiday-widget>summary{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;flex-wrap:wrap}.holiday-widget>summary:before,.absence-widget-list>summary:before{content:'›';font-size:20px;color:var(--muted)}.holiday-widget[open]>summary:before,.absence-widget-list[open]>summary:before{transform:rotate(90deg)}.holiday-widget>summary small{width:100%;font-weight:400;padding-left:18px}.widget-body{margin-top:16px}.widget-scroll{max-height:360px;overflow:auto}.absence-widget-list>summary{display:flex;align-items:center;gap:8px;cursor:pointer;margin-top:8px;font-size:12px}.setup-widget .holiday-group{margin:10px 0 0}.setup-widget .list-row{padding:10px 0}.setup-widget .list-row strong{font-size:12px}.setup-widget .badge{font-size:11px}.setup-widget .actions button{font-size:12px}.setup-jumps a{background:white}.setup-jumps a:hover{border-color:#8eb5a2}
@media(max-width:1050px){#generation .generation-columns{grid-template-columns:1fr}}@media(max-width:650px){.setup-utilities{grid-template-columns:1fr}.generation-review>summary{align-items:flex-start;flex-direction:column;gap:6px}.review-actions{flex-wrap:wrap}.setup-resources>.section-line{align-items:flex-start;gap:12px;flex-direction:column}.setup-resources>.section-line .actions{flex-wrap:wrap}#generation .generation-panel{padding:16px}.setup-widget{padding:14px}.variable-card{flex-wrap:wrap}}
.resource-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none}.resource-summary>div{min-width:0}.resource-summary h2{margin:5px 0 0;overflow-wrap:anywhere}.resource-summary .resource-origin{display:block;margin-bottom:6px}.resource-summary .eyebrow{display:block}.resource-summary>button{font-size:11px;flex-shrink:0}.resource-summary:before{content:'›';color:var(--muted);font-size:22px}.resource-disclosure[open]>.resource-summary:before{transform:rotate(90deg)}.resource-summary>div{flex:1}.resource-body{margin-top:16px}.setup-resources .card-grid{align-items:start}.setup-resources .resource-disclosure:not([open]){padding-top:14px;padding-bottom:14px}@media(max-width:500px){.resource-summary{gap:8px}.resource-summary>button{max-width:100px;white-space:normal}}
/* Compact setup utilities and a shared resource inventory. */
#availability.setup-availability{margin:0 0 20px;padding:0;border:0}.setup-utilities{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.setup-utilities .setup-widget{padding:0;flex:0 1 auto;min-width:180px}.setup-widget>summary{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;font-size:12px;list-style:none}.setup-widget>summary:before{content:'›';font-size:17px;color:var(--muted)}.setup-widget[open]>summary:before{transform:rotate(90deg)}.setup-widget[open]{flex-basis:420px}.setup-widget .widget-body{padding:0 14px 14px;margin-top:8px}.setup-widget .badge{margin-left:auto}.setup-widget .widget-scroll{max-height:280px}
#generation .setup-intro{margin:0 0 14px}#generation .setup-intro h2{font-size:16px}#generation .setup-intro p{display:none}#generation .generation-panel{padding:16px}#generation .generation-columns{gap:12px}.generation-review-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-top:12px}.generation-review>summary{justify-content:flex-start;gap:12px;padding:13px 14px;min-height:48px;font-size:12px}.generation-review>summary:before{content:'›';font-size:18px}.generation-review[open]>summary:before{transform:rotate(90deg)}.generation-review .review-status{font-size:11px}.review-actions{border:0;padding:8px;gap:6px}.review-actions button{font-size:11px;padding:7px 9px}.generation-review-bar:has(.generation-review[open]){grid-template-columns:1fr}.generation-review-bar:has(.generation-review[open]) .review-actions{border-top:1px solid var(--line)}
.resource-inventory{margin-top:24px}.resource-inventory>.section-line{margin:0 0 12px}.resource-create{gap:7px}.resource-create button,.schedule-create>summary{font-size:12px;padding:8px 11px}.schedule-create{position:relative}.schedule-create>summary{cursor:pointer;border:1px solid #dbe3de;border-radius:7px;background:#fff;list-style:none}.schedule-create-options{position:absolute;right:0;top:calc(100% + 5px);min-width:220px;padding:5px;border:1px solid var(--line);border-radius:8px;background:white;box-shadow:0 8px 24px #233d351a;z-index:5;display:grid;gap:3px}.schedule-create-options button{border:0;text-align:left}
.resource-table{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:white}.resource-table .resource-group{margin:0;padding:0;border:0}.resource-table .generated-group{border-top:2px solid #d6dfe8}.resource-group-label{margin:0;padding:10px 15px;font-size:11px;color:var(--muted);font-weight:500;background:#f7f9f8}.resource-table .generated-group .resource-group-label{background:#eef2f8;color:#63768e}.resource-table .resource-row{margin:0;padding:0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}.resource-table .manual-resource{background:white;border-left:3px solid #59977c}.resource-table .generated-resource{background:#f7f9fc;color:#3e5069;border-left:3px solid #aabbd3}.resource-table .resource-summary{display:grid;grid-template-columns:12px 105px minmax(0,1fr) 20px;gap:12px;padding:12px 15px;min-height:47px}.resource-table .resource-summary:hover{background:#edf2f566}.resource-table .resource-summary:before{font-size:19px}.resource-kind{font-size:11px;color:var(--muted)}.resource-name{font-size:13px;font-weight:500;overflow-wrap:anywhere}.generated-mark{font-size:17px;color:#7b8fab}.resource-table .resource-body{border-top:1px solid var(--line);margin:0;padding:16px 30px 18px 42px;font-size:12px}.resource-table .resource-body>p:last-child{margin-bottom:0}.resource-table .escalation-flow{margin-top:0}.resource-table .routing-list{display:block}.resource-table .route-heading{margin-bottom:12px}.resource-table .route-flow{margin:0}.resource-table .route-position{font-size:10px;padding:2px 5px;margin-right:6px}.resource-table .route-dragging{opacity:.5}.resource-table .drop-before{border-top:2px solid var(--green)}.resource-table .drop-after{border-bottom:2px solid var(--green)}
@media(max-width:700px){.resource-inventory>.section-line{align-items:flex-start;flex-direction:column;gap:10px}.resource-create{flex-wrap:wrap}.resource-create button,.schedule-create>summary{font-size:11px;padding:8px}.generation-review-bar{grid-template-columns:1fr}.generation-review>summary{flex-direction:row;align-items:center;flex-wrap:wrap}.review-actions{justify-content:flex-start;padding-top:0}.resource-table .resource-summary{grid-template-columns:10px 75px minmax(0,1fr) 15px;gap:7px;padding:11px 9px}.resource-kind{font-size:10px}.resource-name{font-size:12px}.resource-table .resource-body{padding:14px}.setup-utilities .setup-widget{min-width:0;flex:1}.setup-utilities .setup-widget[open]{flex-basis:100%}.schedule-create-options{left:0;right:auto}}
.generation-review-bar .review-actions{margin:0}
.resource-table .resource-summary .resource-title{min-width:0}.resource-title .resource-name{display:block}.resource-brief{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:11px;font-weight:400;color:#77857e}.resource-source{display:flex;justify-content:flex-end;margin:-5px 0 12px}.source-rule-link{font-size:11px;padding:5px 8px;border:1px solid #d8e2ed;background:#f1f5fa;color:#526e90;max-width:100%;text-align:right;overflow-wrap:anywhere}.source-rule-link:disabled{opacity:1;cursor:default}.resource-table .resource-summary:has(.resource-title){align-items:start}.resource-table .resource-summary>.resource-kind{padding-top:2px}@media(max-width:700px){.resource-brief{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.resource-source{margin-top:0}}
.form-validation{width:100%;flex-basis:100%}.validation-control{width:100%;font-size:12px}.validation-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f4f6f5;font-size:12px}.validation-toggle.is-checked{background:#edf5ef;color:#27684b}.validation-toggle.has-errors{background:#fff0ed;border-color:#e9beb5;color:#913d32}.validation-toggle.is-checking{opacity:.8}.validation-details{max-height:230px;overflow:auto;padding:8px 12px;border:1px solid var(--line);border-top:0;background:white}.validation-issue{padding:10px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.validation-issue>strong,.validation-issue>small{display:block;margin-bottom:5px}.validation-issue .actions{margin:6px 0 0;flex-wrap:wrap}.validation-issue button{font-size:11px;padding:5px 8px}.page-validation{position:sticky;top:70px;z-index:4;margin-top:12px}.generation-block{scroll-margin-top:16px}@media(max-width:700px){.validation-details{max-height:160px}.page-validation{top:150px}}
.absence-range .absence-zone{display:block;margin:8px 0}.absence-range .two-columns{align-items:start}.absence-range input[type=time]{width:100%}.impact-table .impact-interval{min-width:180px}.impact-interval>strong{display:block;margin-bottom:6px;overflow-wrap:anywhere}.impact-interval>small{display:flex;flex-direction:column;gap:3px;line-height:1.5;white-space:normal}.absence-range select{min-width:0;width:100%}
.coverage-problems.panel{padding:20px;margin:20px 0 26px;border:1px solid #e5c9a8;border-radius:10px}
.coverage-problems>p{margin-bottom:16px}.coverage-issue-list{display:flex;flex-direction:column;gap:12px;max-height:320px}
.coverage-issue{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #ebc9c2;border-radius:8px;background:#fff8f6}
.coverage-issue.is-pending{background:#fffdf7;border-color:#e5dcc0}.coverage-issue-body{display:flex;flex-direction:column;gap:8px;min-width:0;overflow-wrap:anywhere}
.coverage-state{font-size:12px;font-weight:600;color:#9a4436}.is-pending .coverage-state{color:#806221}.coverage-times{display:flex;flex-wrap:wrap;gap:6px;line-height:1.6}.coverage-issue>button{flex-shrink:0}
@media(max-width:640px){.coverage-problems.panel{padding:16px}.coverage-issue{align-items:stretch;flex-direction:column;padding:12px}.coverage-times{flex-direction:column;gap:3px}}
#generation .generation-columns{grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr) minmax(0,.85fr);gap:16px;align-items:start}
#generation .generation-panel{padding:18px;min-width:0}#generation .generation-panel>.section-line{flex-wrap:wrap;gap:10px}#generation .generation-panel h2{font-size:15px}
#generation .variable-card{flex-wrap:wrap;gap:6px}#generation .variable-card>.grow{flex:1 0 100%;min-width:0}#generation .variable-card button{font-size:11px;padding:6px 8px}
#generation #availability{margin:0;min-width:0}#availability .setup-utilities{display:flex;flex-direction:column;gap:16px}#availability .setup-widget{width:100%;min-width:0;padding:16px;flex:none}
#availability .widget-heading{font-size:14px;font-weight:600}#availability .widget-body{padding:0;margin-top:12px}#availability .widget-scroll{max-height:240px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#availability .actions{flex-wrap:wrap;gap:8px;margin-top:0;margin-bottom:12px}#availability .list-row{gap:8px;align-items:flex-start}#availability .list-row>div{min-width:0;flex:1}#availability .list-row small{display:block;margin-top:5px;line-height:1.5}#availability .list-row button{font-size:11px;padding:5px 0}
#availability .holiday-group>summary{display:flex;gap:8px;align-items:center;padding:8px 0;font-size:12px;cursor:pointer}
@media(max-width:1200px){#generation .generation-columns{grid-template-columns: minmax(0,1fr) minmax(0,1fr)}#generation #availability{grid-column:1/-1}#availability .setup-utilities{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:700px){#generation .generation-columns{grid-template-columns:minmax(0,1fr)}#availability .setup-utilities{grid-template-columns:minmax(0,1fr)}}
#generation .variable-card .grow>small{display:block;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.workspace-variable-list,.generation-rule-list{max-height:360px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px}.workspace-variable-list:focus-visible,.generation-rule-list:focus-visible{outline:2px solid #4f9d7e;outline-offset:3px;border-radius:4px}
.resource-inventory{padding:20px;background:#fff;border:1px solid var(--line);border-radius:12px}
.resource-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.resource-kind{display:flex;align-items:center;gap:7px}.resource-table .resource-summary{grid-template-columns:12px 116px minmax(0,1fr) 18px;align-items:center}
.resource-table .resource-body{padding:16px 20px 20px 150px;background:#fbfcfc;border-top:1px solid #e6ebe8}.resource-table .generated-resource .resource-body{background:#f8fafc}
.resource-source{margin:0 0 14px;min-height:0}.source-rule-link{display:inline-flex;align-items:center;font-size:12px;padding:7px 10px;border-radius:6px}
.resource-detail-list{border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden}
.resource-detail-item{display:flex;position:relative;align-items:flex-start;gap:14px;padding:14px 16px}.resource-detail-item+.resource-detail-item{border-top:1px solid var(--line)}
.resource-detail-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid #dce7e1;border-radius:8px;background:#f0f5f2;color:#54806a;flex-shrink:0;margin-top:2px}
.resource-detail-copy{min-width:0;display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}.resource-detail-copy strong{font-size:13px;font-weight:600;line-height:1.5}.resource-detail-copy small{line-height:1.5;display:block}.resource-detail-label{font-size:11px;color:#6c8075}
.resource-detail-item.is-flow-step:before{content:'';position:absolute;top:-5px;left:29px;width:6px;height:6px;border-right:1.5px solid #8aaa97;border-bottom:1.5px solid #8aaa97;transform:rotate(45deg);background:white;z-index:1}
.resource-actions,.resource-body .route-heading{margin:14px 0 0;gap:8px}.resource-body .route-heading{padding:0 0 14px}.resource-actions button,.resource-body .route-heading button{font-size:12px}
@media(max-width:700px){.resource-inventory{padding:12px}.resource-table .resource-summary{grid-template-columns:10px 25px minmax(0,1fr) 15px}.resource-kind>span{display:none}.resource-table .resource-body{padding:12px}.resource-detail-item{padding:12px;gap:10px}.resource-detail-item.is-flow-step:before{left:25px}.resource-source{justify-content:flex-start}.source-rule-link{text-align:left}.resource-detail-copy strong{font-size:12px}}
@media(max-width:700px){.resource-table .resource-summary{grid-template-columns:10px 66px minmax(0,1fr) 15px}.resource-kind{flex-direction:column;align-items:flex-start;gap:5px}.resource-kind>span{display:block;font-size:9px}}
.resource-table .resource-body{padding:10px 18px 14px 42px}.resource-source{margin:0 0 8px}.source-rule-link{font-size:11px;padding:4px 7px}
.resource-widget{min-width:0}.widget-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;font-size:11px;color:#748379;margin-bottom:10px}.widget-type{display:inline-flex;align-items:center;gap:6px;color:#486153;font-weight:600}
.widget-chain{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px}.widget-node{position:relative;display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;padding:8px 11px;border:1px solid #dce5e0;border-radius:7px;background:white;font-size:12px;overflow-wrap:anywhere}
.widget-node>div{min-width:0}.widget-node strong{display:block;font-size:12px;font-weight:600;line-height:1.5}.widget-node small{display:block;font-size:10px;line-height:1.5}.widget-node~.widget-node:before{content:'';position:absolute;left:-17px;top:calc(50% - 3px);width:6px;height:6px;border-top:1.5px solid #8ba595;border-right:1.5px solid #8ba595;transform:rotate(45deg)}
.widget-order{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#edf3ef;color:#5e7e6b;font-size:10px;flex-shrink:0}.person-node{min-height:38px}.fallback-node,.route-destination{background:#eef5f1}.trigger-node{border:0;background:none;padding-left:0;color:#738578}.escalation-node{align-items:flex-start}.widget-end{margin:10px 0 0}.widget-end .resource-icon{width:14px;height:14px}.widget-condition-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.widget-condition{padding:3px 6px;background:#f2f5f3;border-radius:4px;font-size:11px}.routing-conditions{flex:0 1 auto}.routing-widget{align-items:center}
@media(max-width:700px){.resource-table .resource-body{padding:10px}.widget-chain{gap:10px 20px}.widget-node{padding:7px 9px}.widget-node~.widget-node:before{left:-14px}.widget-meta{gap:6px 12px}.source-rule-link{font-size:10px}}
.modal.constructor-modal{width:min(1120px,calc(100vw - 40px));max-width:1120px}
.rule-constructor .rule-identity{grid-template-columns:minmax(0,1fr) auto!important;align-items:center;gap:16px}.rule-constructor .rule-identity label{margin:8px 0 16px}.rule-constructor .rule-identity .check{margin:8px 0 16px}
.constructor-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}.constructor-inputs{background:#f5f8f6;border:1px solid var(--line);border-radius:8px;padding:12px;min-width:0}.constructor-section+.constructor-section{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.rule-constructor h3{font-size:13px;margin:0}.rule-constructor .section-line{margin:0 0 10px;gap:8px;flex-wrap:wrap}.constructor-loop{border:1px solid #dbe5de;border-left:3px solid #94b5a1;border-radius:6px;padding:10px;margin-top:10px;background:white}.constructor-loop-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.constructor-loop label{margin:8px 0;gap:4px;font-size:11px}.constructor-loop input,.constructor-loop select{width:100%;min-width:0}.constructor-predicate{display:grid;gap:7px}.constructor-filter>.check{font-size:11px;line-height:1.5;margin:10px 0}.constructor-empty{font-size:12px;color:#7d8a85;padding:12px;border:1px dashed #d3dfd7;border-radius:6px;margin:8px 0}
.rule-constructor input:not([type=checkbox]),.rule-constructor select,.rule-constructor button{font-size:12px;padding:7px 9px;min-height:32px}.rule-constructor button.text{padding:3px 5px;min-height:24px}.rule-constructor .binding-button{background:white;color:inherit;font-size:11px;padding:7px 9px}.constructor-binding{font-family:Consolas,monospace}.constructor-outputs{min-width:0}.constructor-outputs>.recipe-section{margin:0;padding:0;border:0}.constructor-outputs .generation-block{padding:12px;margin:10px 0;border-radius:7px;background:#fff}.constructor-outputs .generation-block>.route-heading{padding-bottom:9px;border-bottom:1px solid var(--line);gap:6px;flex-wrap:wrap}.constructor-outputs .route-heading>.grow{font-size:12px;min-width:100px}.constructor-outputs .badge{font-size:10px}
.rule-constructor .binding-grid{gap:8px 14px;align-items:start}.rule-constructor .recipe-field{position:relative;min-width:0;padding-top:6px}.rule-constructor .recipe-field>label{font-size:11px;margin:0 0 5px;padding-right:54px;line-height:1.4}.rule-constructor .recipe-field input,.rule-constructor .recipe-field select{width:100%;min-width:0;margin-top:0}.rule-constructor .recipe-field .binding-tweak{position:absolute;top:2px;right:0;font-size:10px!important;min-height:20px;padding:2px 3px}.rule-constructor .recipe-field .inline-value{margin-top:5px}.rule-constructor .generation-step{gap:6px;padding:8px 0;border-bottom:1px solid var(--line);margin:0}.rule-constructor .generation-step .flow-arrow{padding:0}.rule-constructor .recipe-example{margin-top:14px;padding:12px;background:#f5f8f6;border-radius:7px}.rule-constructor .recipe-example h3{margin-bottom:7px}.rule-constructor .recipe-example td,.rule-constructor .recipe-example th{padding:7px;font-size:11px}
@media(max-width:800px){.constructor-layout{grid-template-columns:1fr}.constructor-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.constructor-section+.constructor-section{border:0;margin:0;padding:0}.modal.constructor-modal{width:calc(100vw - 20px)}.rule-constructor .binding-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.constructor-inputs,.rule-constructor .binding-grid{grid-template-columns:1fr}.rule-constructor .rule-identity{gap:8px}.rule-constructor .name-composer{flex-wrap:wrap}.constructor-layout{gap:12px}}
.compact-preview{margin:12px 0 0!important;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0!important}.compact-preview>summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:9px 12px!important;font-size:11px!important;cursor:pointer;min-height:36px!important}.preview-totals{display:flex;flex-wrap:wrap;gap:10px;color:#738478}.compact-preview-body{padding:8px 12px}.compact-change-list{max-height:180px;overflow:auto}.compact-change{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.compact-change>div{min-width:0}.compact-change strong,.compact-change small{display:block;overflow-wrap:anywhere;line-height:1.4}.compact-change strong{font-size:11px}.compact-change small{font-size:10px;margin-top:2px}.compact-change .badge{font-size:10px;min-width:58px;text-align:center}.compact-preview-body>div>small{font-size:10px}.compact-example{border:1px solid var(--line)!important;padding:0!important;margin-top:12px!important}.compact-example>summary{font-size:11px;font-weight:600;padding:9px 12px;cursor:pointer}.compact-example table{font-size:11px}.generation-review-bar>.compact-preview{margin:0!important;border:0;border-radius:0;background:transparent;min-width:0}.generation-review-bar .review-actions{padding:10px 12px;gap:8px;flex-wrap:wrap;align-items:center}
.binding-popover{position:fixed;inset:auto;margin:0!important;padding:12px!important;border:1px solid #bacec1;border-radius:9px;background:#fff;box-shadow:0 12px 36px #1b342833;overflow:auto;overscroll-behavior:contain;z-index:1000;color:var(--ink);font-size:12px}.binding-popover::backdrop{background:transparent}.binding-popover>.section-line{position:sticky;top:-12px;background:white;padding:8px 0;z-index:2;margin:-4px 0 8px;border-bottom:1px solid var(--line)}.binding-popover h3{font-size:13px;margin:0}.binding-popover label{font-size:11px;margin:9px 0;gap:4px}.binding-popover input,.binding-popover select,.binding-popover textarea{font-size:12px;padding:7px 8px;min-width:0;width:100%}.binding-popover button{font-size:11px;padding:5px 8px}.binding-popover .two-columns{gap:10px;grid-template-columns:1fr 1fr}.binding-popover .binding-source{padding:0}.binding-popover .binding-key{margin:10px 0 0 8px;padding-left:10px}.binding-popover .binding-template{font-size:11px;margin-bottom:8px;max-width:100%;overflow-wrap:anywhere}.binding-popover .info-note{font-size:10px;padding:7px;margin:7px 0}.binding-popover .binding-value-preview{margin-top:12px;padding:8px;border-radius:5px}.binding-popover .binding-value-preview textarea{min-height:65px;max-height:130px;font-size:11px}.binding-popover .binding-value-preview .section-line{margin:0 0 5px}.binding-popover .binding-value-preview strong{font-size:11px}.binding-popover .binding-value-preview small{font-size:10px}
.rule-constructor .recipe-field{padding-right:34px}.rule-constructor .recipe-field>label{padding-right:0}.rule-constructor .recipe-field .binding-tweak{top:26px;right:0;font-size:20px!important;border:1px solid var(--line);width:29px;height:32px;line-height:1;background:white}.inline-binding{display:flex;gap:5px;align-items:center;min-width:0}.inline-delay{max-width:210px}.inline-delay input{width:65px!important;min-width:0}.binding-popup-trigger{font-size:20px!important;padding:0 7px!important;line-height:1}.inline-delay .binding-button{max-width:145px}.inline-delay>span{font-size:11px}
.compact-preview .compact-change-list{max-height:320px;overscroll-behavior:contain}.compact-preview .preview-status{display:inline-block;padding:3px 7px;border-radius:4px;font-size:10px;line-height:1.4;font-weight:500}.compact-preview .status-create{background:#e5f3eb;color:#246346}.compact-preview .status-update{background:#e8effb;color:#365e98}.compact-preview .status-remove{background:#fbe9e5;color:#a24435}.compact-preview .status-unchanged{background:#edf0f2;color:#626f79}.preview-list-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:9px}.compact-preview .preview-list-toggle{font-size:11px!important;padding:4px 7px!important;min-height:0!important;line-height:1.4;border-radius:5px;font-weight:500}.compact-preview .preview-list-toggle:hover{background:#edf3ef}.compact-preview .preview-totals{gap:6px}@media(max-width:640px){.compact-preview .compact-change-list{max-height:280px}}
.rule-result{border:1px solid var(--line)!important;border-radius:7px;padding:0!important;margin-top:12px!important}.rule-result>summary{padding:10px 12px;cursor:pointer;font-size:12px}.rule-result>summary small{margin-left:12px;font-weight:400;color:var(--muted)}.rule-result-list{max-height:260px;overflow:auto;overscroll-behavior:contain}.rule-result-row{display:flex;gap:9px;padding:9px 12px;border-top:1px solid var(--line);align-items:flex-start}.rule-result-row>div{min-width:0}.rule-result-row small{display:block;font-size:11px;margin-top:4px;overflow-wrap:anywhere}.rule-result-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px}.rule-result-row svg{width:17px;height:17px;flex:none}.rule-result>summary .danger{color:#a24435}
/* Scalar controls fit their values; references keep room for descriptive names. */
input[type=number]{max-width:110px;min-width:0}
input[type=time]{max-width:132px;min-width:0}
input[type=date]:not(.native-date),.date-field{max-width:176px;min-width:0}
.date-field{width:176px;justify-self:start}
.date-field>input:not(.native-date){width:100%;min-width:0}
.rule-constructor .recipe-field.compact-scalar-field{width:210px;max-width:100%;justify-self:start}
.rule-constructor .recipe-field.compact-number-field.compact-scalar-field{width:144px}
.rule-constructor .compact-scalar-field .inline-value{margin-top:0}
.rule-constructor .compact-time-field.compact-scalar-field{width:166px}
.rule-constructor .compact-scalar-field .binding-tweak{top:auto;bottom:0}
/* Keep each value picker in the same grid row as its control, below its label. */
.rule-constructor .recipe-field{display:grid;grid-template-columns:minmax(0,1fr) 29px;column-gap:5px;row-gap:5px;padding-right:0;align-items:start}
.rule-constructor .recipe-field>label{grid-column:1 / -1;margin:0;padding:0}
.rule-constructor .recipe-field>input,.rule-constructor .recipe-field>div{grid-column:1;grid-row:2;min-width:0}
.rule-constructor .recipe-field .binding-tweak{position:static;grid-column:2;grid-row:2;align-self:start;margin:0}
.rule-constructor .recipe-field .inline-value{margin-top:0}
.rule-constructor .recipe-field .check{margin:0;min-height:32px;justify-content:flex-start}
.rule-constructor .recipe-field input[type=checkbox]{width:16px;height:16px;min-height:16px;flex:0 0 16px;margin:0;padding:0}
.rule-constructor .recipe-field .date-field{width:100%}
.generation-review-bar{overflow:hidden}
.generation-review-bar>.compact-preview>summary{padding:12px 14px!important;justify-content:flex-start;gap:8px 12px}
.generation-review-bar .preview-totals{flex-wrap:wrap;gap:6px}
.generation-review-bar .preview-status{white-space:nowrap}
.generation-review-bar>.compact-preview>.compact-preview-body{padding:12px 14px}
@media(max-width:700px){.generation-review-bar .review-actions{border-top:1px solid var(--line);justify-content:flex-start;padding:10px 14px}}
/* Compact variable tree: values first, schema controls on demand. */
.compact-data-tree{max-height:52vh;overflow:auto;background:var(--surface,#fff)}
.compact-data-tree .data-row{grid-template-columns:minmax(130px,1fr) minmax(140px,2fr) auto;gap:8px;padding:6px 8px 6px calc(12px + var(--data-depth,0)*20px);border-left:0;background:transparent;min-height:43px}
.compact-data-tree.structure-mode .data-row{grid-template-columns:minmax(100px,1fr) 112px minmax(130px,2fr) auto}
.compact-data-tree .container-row{background:#f7f9f7}
.compact-data-tree .data-key{display:flex;align-items:center;gap:5px;min-width:0;color:var(--ink);font-family:Consolas,monospace}
.compact-data-tree .data-key>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-data-tree .data-disclosure{border:0;background:none;padding:4px;width:23px;flex-shrink:0}
.compact-data-tree input,.compact-data-tree select{padding:6px 8px;min-height:32px;margin:0}
.compact-data-tree .data-value .actions{flex-wrap:nowrap;gap:6px;min-width:0}
.data-container-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;font-size:11px;color:var(--muted)}
.compact-data-tree .data-actions{grid-column:auto;gap:2px}
.compact-data-tree .data-actions button{padding:4px;min-width:23px;font-size:11px}
.compact-data-tree .data-value .actions button{padding:4px 6px;white-space:nowrap;font-size:10px}
@media(max-width:700px){.compact-data-tree .data-row,.compact-data-tree.structure-mode .data-row{grid-template-columns:minmax(0,1fr) auto;padding-left:calc(12px + var(--data-depth,0)*12px);gap:5px}.compact-data-tree .data-key{grid-column:1}.compact-data-tree .data-actions{grid-column:2;grid-row:auto}.compact-data-tree .data-value{grid-column:1/-1;grid-row:auto}.compact-data-tree .data-type{grid-column:1/-1}.compact-data-tree .data-container-preview{max-width:180px}}
/* Depth lives in the stylesheet: CSP deliberately rejects inline styles. */
.compact-data-tree .data-depth-0{--data-depth:0}
.compact-data-tree .data-depth-1{--data-depth:1}
.compact-data-tree .data-depth-2{--data-depth:2}
.compact-data-tree .data-depth-3{--data-depth:3}
.compact-data-tree .data-depth-4{--data-depth:4}
.compact-data-tree .data-depth-5{--data-depth:5}
.compact-data-tree .data-depth-6{--data-depth:6}
.compact-data-tree .data-depth-7{--data-depth:7}
.compact-data-tree .data-depth-8{--data-depth:8}
.compact-data-tree .data-depth-9{--data-depth:9}
.compact-data-tree .data-row{position:relative;--tree-step:20px}
.compact-data-tree .data-row::before{content:"";position:absolute;inset:0 auto 0 12px;width:calc(var(--data-depth,0)*var(--tree-step));background:repeating-linear-gradient(to right,var(--line) 0 1px,transparent 1px var(--tree-step));pointer-events:none}
.compact-data-tree .data-row:not(.container-row) .data-key{padding-left:28px}
.compact-data-tree .data-key{min-width:0}
@media(max-width:700px){.compact-data-tree .data-row{--tree-step:12px}.compact-data-tree .data-row:not(.container-row) .data-key{padding-left:0}}
.generation-map{width:calc(100vw - 36px);max-width:1600px;height:calc(100vh - 36px);max-height:100vh;border:1px solid var(--line);border-radius:16px;padding:0;color:var(--ink);background:#fff;overflow:hidden}
.generation-map::backdrop{background:#172e24a6;backdrop-filter:blur(3px)}
.generation-map[open]{display:flex;flex-direction:column}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px 12px}.map-heading h2{margin:0;font-size:22px}.map-heading p{font-size:12px;color:var(--muted);margin:8px 0 0}.map-toolbar{display:flex;align-items:center;gap:8px;padding:10px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.map-toolbar button,.map-heading button{font-size:12px;padding:7px 12px}.map-status{font-size:11px;color:#33764f}.map-status-error{color:#a54432}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;flex:1;min-height:0}.map-canvas{min-height:0;position:relative;background-color:#f7faf8;background-image:radial-gradient(#c8d7ce 1px,transparent 1px);background-size:20px 20px;overflow:hidden}.map-inspector{padding:18px;border-left:1px solid var(--line);overflow:auto;min-width:0}.map-inspector label{margin:0 0 14px}.map-inspector select{font-size:12px;padding:8px;width:100%}.map-inspector h3{font-size:16px;margin:14px 0 7px;overflow-wrap:anywhere}.map-inspector h4{font-size:12px;margin:18px 0 8px}.map-inspector p{font-size:12px;line-height:1.5}.map-inspector .actions{margin:12px 0;gap:6px;flex-wrap:wrap}.map-inspector button{padding:7px 10px;font-size:11px}.map-inputs,.map-resource{border:1px solid var(--line);border-radius:7px;margin:8px 0;overflow:hidden}.map-inspector summary{cursor:pointer;padding:10px;font-size:12px}.map-resource strong{display:block;margin:5px 0 0}.map-inspector pre{font:11px/1.6 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f8f6;margin:0;padding:10px;max-height:280px;overflow:auto}.map-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:10px 24px;font-size:10px;color:var(--muted)}.map-legend span:last-child{margin-left:auto}.map-legend-variable::before,.map-legend-rule::before,.map-legend-iteration::before{content:"";display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;background:#d8c9aa}.map-legend-rule::before{background:#79a68a}.map-legend-iteration::before{background:#94add2}
@media(max-width:700px){.generation-map{width:calc(100vw - 12px);height:calc(100dvh - 12px)}.map-heading{padding:12px}.map-heading h2{font-size:18px}.map-toolbar{padding:8px 12px}.map-layout{grid-template-columns:1fr;grid-template-rows:minmax(180px,1fr) minmax(150px,40%)}.map-inspector{border-left:0;border-top:1px solid var(--line);padding:12px}.map-legend{padding:8px 12px;gap:8px}.map-legend span:last-child{display:none}}
.map-input-content{padding:0 12px 12px;max-height:420px;overflow:auto}.map-input-section+.map-input-section{border-top:1px solid var(--line);margin-top:14px}.map-input-section h4{color:var(--muted);font-size:11px;margin:12px 0}.map-input-field{margin:12px 0}.map-input-label{display:flex;gap:8px;justify-content:space-between;font-size:11px;margin-bottom:5px;color:var(--muted)}.map-input-label small{font-size:9px}.map-input-value+.map-input-value{border-top:1px dashed var(--line);margin-top:6px;padding-top:6px}.map-input-token{font-size:12px;overflow-wrap:anywhere;margin:3px 0}.map-input-token>small{display:block;font:10px Consolas,monospace;color:var(--muted);margin-bottom:3px}.map-input-token strong{font-weight:500}.map-reference{border:1px solid #dce6df;background:#f5f8f6;border-radius:6px;padding:7px 9px;display:flex;gap:5px;flex-wrap:wrap;align-items:center}.map-reference>small{flex-basis:100%}.map-reference-kind{font-size:10px;color:#54836a}.map-reference strong{font-weight:600}
.map-source-card{border:1px solid var(--line);border-radius:7px;padding:10px;margin:8px 0;background:#f8faf9}.map-source-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}.map-source-title>small{margin-left:auto;color:var(--muted)}.map-source-addresses{display:flex;flex-direction:column;gap:4px;margin-top:7px}.map-source-addresses code{font:10px/1.5 Consolas,monospace;overflow-wrap:anywhere;color:#567565}.map-source-card>button{margin-top:6px;padding:3px 0}
.map-resource-fields{padding:0 12px 12px;border-top:1px solid var(--line)}.map-field-hint{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-bottom:6px}.map-resource-fields .map-reference>small{flex-basis:auto;margin:0;min-width:15px}.map-resource-fields .map-input-field:last-child{margin-bottom:0}
.login-form .password-login{display:block}.login-form .password-login>label:first-of-type{margin-top:22px}.login-form .sso-button{display:block;width:100%;margin-top:26px;padding:13px;text-align:center;text-decoration:none;border:1px solid var(--green);border-radius:7px;box-sizing:border-box}
.login-divider{display:flex;align-items:center;gap:12px;margin:22px 0 0;color:var(--muted);font-size:12px}.login-divider::before,.login-divider::after{content:"";flex:1;border-top:1px solid var(--line)}
.login-error{display:flex;flex-direction:column;gap:6px;margin-top:22px;padding:12px 14px;border:1px solid #e9c6b9;border-radius:7px;background:#fff3ee;color:#a04e34;font-size:13px;line-height:1.5}.login-error small{font-size:11px;user-select:all;color:#8a5f4f}
.demo-accounts{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:2px}.demo-account{display:flex;align-items:baseline;gap:10px;padding:2px 0;font-size:11px;text-align:left;border:0;background:none}.demo-account code{min-width:56px;font-weight:700}.demo-password{display:block;margin-top:6px}.demo-password code{user-select:all}.demo-note small{display:block;margin-top:6px;color:#8a977f}
a.button{display:inline-block;text-decoration:none;border:1px solid #dbe3de;border-radius:7px;padding:9px 13px;color:inherit}a.button.primary{width:auto;margin-top:12px}
.sidebar nav .instance-link{margin-top:6px;border-top:1px solid var(--line);border-radius:0;padding-top:18px}
.warning-banner{margin:0 0 20px;padding:14px 16px;border:1px solid #e5c9a8;border-radius:8px;background:#fdf4e3;color:#7d5a1d;font-size:13px;line-height:1.5}
.config-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:12px 0}.config-summary>div{min-width:0}.config-summary dt{font-size:11px;color:var(--muted);margin-bottom:3px}.config-summary dd{margin:0;overflow-wrap:anywhere}
.admin-workspace.disabled{background:#faf7f2}.admin-workspace small{display:block;margin-top:3px;overflow-wrap:anywhere}.disabled-note{color:#a17f32}
.admin-user small{display:block;margin-top:3px;overflow-wrap:anywhere}.admin-user .badge,.admin-workspace .badge{white-space:nowrap}.admin-user>button,.admin-workspace>button{white-space:nowrap}small.inline{display:inline}
.padded{padding:16px}.danger-button{color:#a04e34;border-color:#e9c6b9}.danger-button:hover{background:#fff3ee}.danger-note{background:#fff3ee;color:#a04e34}
.role-badge{text-transform:none}.role-badge.admin{background:#e4f1e8;color:#3d7e57}
.permission-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:6px}.permission-list li{color:var(--muted)}.permission-list li.on{color:var(--ink)}
.group-picker{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:12px 0 0}.group-picker legend{font-size:12px;color:var(--muted);padding:0 6px}.group-picker .check{margin:6px 0}
@media(max-width:700px){.config-summary{grid-template-columns:1fr}.admin-user,.admin-workspace{flex-wrap:wrap}.admin-user>.grow,.admin-workspace>.grow{flex-basis:calc(100% - 60px)}}
@media(max-width:700px){.sidebar nav .instance-link{margin:0;border:0;border-radius:6px;padding:6px}.sidebar nav .instance-link>span:not(.nav-icon){position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}}
.admin-user .badge,.admin-workspace .badge{text-transform:none}.admin-user strong{display:inline}
@media(max-width:700px){.sidebar nav .instance-link{padding:6px 2px}.sidebar nav .instance-link .nav-icon{width:16px}}
.event-search{display:flex;gap:8px;margin:12px 0}.event-search input{flex:1;min-width:0}.event-search button{white-space:nowrap}.event-search .primary{width:auto;margin:0;padding:9px 13px}
.event-list{display:flex;flex-direction:column}.event-row{padding:12px 0;border-top:1px solid var(--line);min-width:0}.event-row:first-child{border-top:0}.event-row.failed{border-left:3px solid #d99a82;padding-left:12px;background:#fff9f6}
.event-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}.event-actor{font-weight:600}.event-time{color:var(--muted);margin-left:auto}
.event-action{font:12px/1.4 Consolas,monospace;background:#eef3f0;color:#3d5a4c;padding:2px 7px;border-radius:5px;overflow-wrap:anywhere}.event-action.failed{background:#fbe3da;color:#a04e34}
.event-details{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0 0}.event-details>div{min-width:0;max-width:100%}.event-details dt{display:inline;color:var(--muted);font-size:11px}.event-details dt::after{content:": "}.event-details dd{display:inline;margin:0;overflow-wrap:anywhere;word-break:break-word;font-size:12px}
.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{font:11px/1.4 Consolas,monospace;background:#eef3f0;padding:1px 6px;border-radius:10px;overflow-wrap:anywhere}
@media(max-width:700px){.event-search{flex-wrap:wrap}.event-search input{flex-basis:100%}.event-time{margin-left:0;flex-basis:100%}}
.brand .app-version{align-self:flex-end;margin-bottom:7px;font-size:11px;font-weight:500;letter-spacing:0;color:var(--muted)}
@media(max-width:950px){.sidebar .brand{flex-direction:column;gap:2px}.sidebar .brand .app-version{align-self:center;margin:0}}
@media(max-width:700px){.sidebar{gap:4px;padding:8px}.sidebar nav :is(button,a){padding:8px 4px}.sidebar .brand .app-version{margin:0;font-size:10px}}
.publication-review{border:1px solid var(--line);border-radius:9px;padding:16px;margin-bottom:22px;background:#fff}.publication-review-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.publication-sync{font-weight:650}.publication-sync.sync-needed{background:#ffd65a;color:#493500;border:1px solid #c79a14;box-shadow:0 0 0 2px #ffe99c}.publication-draft-note{font-size:12px;color:#76643d;margin:9px 0}.publication-status{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;margin-bottom:12px}.publication-status .sync-error{width:100%}.publication-review .compact-preview{width:100%;margin-top:8px}
.publication-actions{flex-wrap:wrap;justify-content:flex-end}.publication-workflow{font-size:12px;line-height:1.5}.publication-review-heading{flex-wrap:wrap}@media(max-width:650px){.publication-actions{justify-content:flex-start}}
.map-address{display:inline-flex;flex-wrap:wrap;align-items:baseline;font:11px/1.8 ui-monospace,monospace;color:#7c827f}.map-address button,.map-resource-name button,.map-value-link{border:0;background:transparent;padding:1px 0!important;font:inherit!important;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.map-resource-name{white-space:pre-wrap}.map-probe{position:fixed;inset:auto;margin:0;width:min(390px,calc(100vw - 24px));max-height:min(550px,calc(100dvh - 32px));overflow:auto;border:1px solid #b9cfc3;border-radius:12px;padding:16px;background:#fff;color:var(--ink);box-shadow:0 14px 55px #183a3438;font-size:12px}.map-probe h3{margin:0;font-size:15px}.map-probe h4{margin:16px 0 8px}.map-probe .muted{margin:10px 0;overflow-wrap:anywhere}.map-probe-chain{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none}.map-probe-chain li{display:flex;align-items:center;gap:6px;min-width:0}.map-probe-chain li~li::before{content:"→";color:var(--muted)}.map-probe-chain button{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;text-align:left}.map-probe-fields{display:flex;flex-wrap:wrap;gap:6px}.map-probe-actions{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:flex-end}.map-probe button{font-size:11px;padding:6px 8px}.map-probe-chain .active{background:#e1eee5}.map-probe-example{border-top:1px solid var(--line);padding:10px 0;max-height:220px;overflow:auto}.map-probe-example .map-input-token{display:flex;flex-wrap:wrap;gap:5px;overflow-wrap:anywhere}.map-resource-name button{font-weight:650!important}.map-inspector{width:auto}.map-inspector .map-value-link{font-weight:600!important}
.config-transfer .config-text{font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:2;resize:vertical;min-height:220px;white-space:pre;overflow:auto}.config-transfer .transfer-preview{max-height:320px;overflow:auto;margin-top:16px}.config-transfer .compact-change{overflow-wrap:anywhere}.config-transfer .actions{margin:12px 0}
.config-guide{min-width:0}.config-guide>.section-line{align-items:flex-start;gap:12px}.config-guide>.section-line button{flex-shrink:0}.config-guide h3{font-size:13px;margin:18px 0 7px}.config-guide pre{font:12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:12px;background:#f4f7f5;border:1px solid var(--line);border-radius:8px}.config-guide .guide-example{background:#edf4ef}@media(max-width:600px){.config-guide>.section-line{flex-wrap:wrap}.config-guide pre{font-size:11px;padding:9px}}
@media(max-width:700px){.sidebar nav{min-width:0;flex-wrap:wrap}.sidebar nav :is(button,a){gap:5px;padding:6px 4px}.sidebar-bottom{flex-shrink:0}}