:root{--ink:#25332f;--muted:#727b74;--teal:#17665e;--teal-dark:#0e504a;--teal-pale:#edf5f1;--line:#e0e5df;--paper:#fffefa;--background:#f6f7f2;--purple:#806497;--orange:#af7a38;--radius:14px;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:15px;line-height:1.5;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--background)}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #428dbe;outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:650;line-height:1.16;letter-spacing:-1.1px;margin-bottom:12px}h2{font-size:1.13rem;font-weight:650;letter-spacing:-.25px;margin-bottom:10px}h3{font-size:1rem;margin-bottom:5px}h4{font-size:.94rem}p{margin-bottom:12px}small{font-size:.79rem}ul.errorlist{padding-left:20px;margin:0}input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px;flex-shrink:0}input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{border:1px solid #cdd5cf;border-radius:8px;padding:11px 12px;background:white;color:var(--ink);width:100%;min-height:46px}input::placeholder,textarea::placeholder{color:#8a928c}textarea{resize:vertical;min-height:120px}select{padding-right:28px}input[readonly],textarea[readonly]{background:#f4f5f1}.muted{color:var(--muted)}.eyebrow{color:var(--muted);font-size:.71rem;letter-spacing:1.35px;text-transform:uppercase;font-weight:700;margin-bottom:13px;display:block}.visually-hidden{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;position:absolute;white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;padding:12px;background:white;z-index:100}.skip-link:focus{top:10px}[hidden]{display:none!important}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:224px;background:var(--paper);border-right:1px solid var(--line);padding:35px 22px 22px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:12px;align-items:center;color:var(--ink)}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;background:var(--teal);color:white;border-radius:11px;width:43px;height:43px;font-family:Georgia,serif;font-weight:bold;font-size:29px;line-height:1}.brand strong{display:block;font-size:1.25rem;letter-spacing:-.5px;line-height:1.3}.brand small{display:block;color:var(--muted);font-size:.68rem}.test-badge{display:inline-block;align-self:flex-start;border:1px solid var(--line);border-radius:30px;color:#7c8179;font-size:.67rem;font-weight:600;padding:2px 9px;margin:19px 0 33px;letter-spacing:.4px}.main-nav{display:flex;flex-direction:column;gap:7px}.main-nav a{display:flex;align-items:center;gap:12px;color:#626e65;padding:12px 13px;border-radius:9px;font-size:.91rem;font-weight:550}.main-nav a>span{width:19px;text-align:center;font-size:1.1rem;line-height:1}.main-nav a:hover{background:#f1f4ee;text-decoration:none}.main-nav a[aria-current=page]{background:var(--teal-pale);color:var(--teal);font-weight:650}.sidebar-bottom{margin-top:auto;padding-top:30px}.user-identity{display:flex;align-items:center;gap:10px;padding-top:21px;border-top:1px solid var(--line)}.avatar{background:#eeeee7;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:.72rem;font-weight:650;color:#616d63}.user-identity strong{font-size:.81rem;font-weight:600}.user-identity small{display:block;color:var(--muted);font-size:.69rem}.logout{width:100%;display:flex;justify-content:space-between;margin-top:19px;background:none;border:0;color:var(--muted);padding:5px 2px;font-size:.78rem}.logout:hover{color:var(--teal)}.main{margin-left:224px;padding:44px 38px 30px;max-width:2000px}.main-public{margin:0;padding:0;max-width:none}.page-header{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:31px}.page-header .muted{font-size:.88rem;margin-bottom:0}.page-header .button{flex-shrink:0}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:43px;border:1px solid transparent;border-radius:8px;padding:10px 17px;font-size:.83rem;font-weight:600;line-height:1.3;white-space:normal;text-align:center}.button:hover{text-decoration:none}.button-primary{color:#fff;background:var(--teal);border-color:var(--teal);box-shadow:0 2px 2px #174c4012}.button-primary:hover{background:var(--teal-dark);border-color:var(--teal-dark)}.button-outline{color:var(--ink);background:var(--paper);border-color:var(--line)}.button-outline:hover{border-color:#9eb6ac;background:#f3f7f2}.button-quiet{background:transparent;color:var(--muted)}.button-quiet:hover{background:#eff2eb}.button-small{min-height:34px;font-size:.76rem;padding:7px 12px}.button-full{width:100%;min-height:46px}.icon-button{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);font-size:23px;line-height:1}.icon-button:hover{background:var(--teal-pale);text-decoration:none}.text-link{font-size:.8rem;font-weight:600}.back-link{display:inline-block;font-size:.82rem;color:var(--muted);margin-bottom:22px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:22px}.information-note{display:flex;align-items:flex-start;gap:12px;color:var(--muted);font-size:.79rem;padding:17px 4px;max-width:860px}.information-note>span{font-size:1.2rem;color:#82958a;line-height:1.2}.information-note p{margin-bottom:0}.messages{margin-bottom:24px}.message{padding:13px 17px;border:1px solid #b9d7c4;border-radius:9px;background:#eff8f0;margin-bottom:10px;font-size:.87rem}.message.error{background:#fdf0ed;border-color:#e6bab3;color:#863e34}.message.warning{background:#fff8e8;border-color:#e4c787;color:#876325}
.calendar-shell{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow:visible}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 23px 20px}.week-navigation{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.week-navigation h2{font-size:1.01rem;margin:0 4px;min-width:155px;text-align:center}.week-navigation .button{margin-left:5px}.calendar-view-label{font-size:.72rem;color:var(--muted)}.calendar-filters{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:0 23px 22px}.filter-caption{font-size:.71rem;color:var(--muted);margin-right:4px}.filter-chip{display:flex;align-items:center;gap:6px;font-size:.73rem;padding:7px 9px;background:#f5f6f1;border:1px solid #e6e9e2;border-radius:7px;cursor:pointer;min-height:35px}.filter-chip input{width:13px;height:13px;margin:0}.filter-chip:hover{border-color:#9eb6ac}.legend-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}.legend-dot.primary{background:var(--teal)}.legend-dot.colleague{background:var(--orange)}.legend-dot.private{background:var(--purple)}.speaker-filter{position:relative;margin-left:auto}.speaker-filter summary{list-style:none;cursor:pointer;font-size:.75rem;color:#68746a;padding:7px 0}.speaker-filter summary::-webkit-details-marker{display:none}.speaker-filter summary>span{margin-left:8px}.filter-popover{position:absolute;right:0;top:38px;width:250px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:15px;box-shadow:0 10px 28px #17362619;z-index:20}.filter-popover label{display:flex;align-items:center;gap:8px;padding:7px;font-size:.82rem;cursor:pointer}.filter-popover p{font-size:.7rem;color:var(--muted);margin:10px 5px 2px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:450px;border-top:1px solid var(--line)}.calendar-day{min-width:0;border-right:1px solid var(--line);background:#fdfefa}.calendar-day:last-child{border-right:0;background:#fafbf6}.calendar-day:nth-last-child(2){background:#fafbf6}.day-header{padding:17px 12px 14px;border-bottom:1px solid var(--line);min-height:71px;display:flex;flex-direction:column;gap:5px}.day-header h3{color:#637067;font-size:.76rem;font-weight:600;margin:0}.day-date{font-size:.85rem;font-weight:650;color:#4e5d51}.is-today .day-date{color:var(--teal);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}.is-today .day-header{background:#eef5ed}.day-events{padding:11px 8px 24px;min-height:345px;display:flex;flex-direction:column;gap:10px}.event-card{position:relative;border:1px solid #dce9df;border-left:3px solid var(--teal);border-radius:7px;padding:10px 9px 9px;background:#f1f7ef;overflow-wrap:anywhere}.event-colleague{border-color:#e9dfcc;border-left-color:var(--orange);background:#fcf7eb}.event-private{border-color:#9160bf;border-left-color:#7542a3;background:#b98ae8}.event-card.status-requested,.event-card.status-open{border-style:dashed;border-left-style:solid}.event-time{color:#5d6b60;font-size:.69rem;font-weight:700;margin-bottom:7px}.event-time span{font-weight:400}.event-card h4{font-size:.81rem;font-weight:650;line-height:1.35;margin-bottom:7px}.event-card h4 a{color:var(--ink)}.event-card h4 a:after{content:"";position:absolute;inset:0}.event-card:has(a:focus-visible){outline:3px solid #428dbe;outline-offset:2px}.event-location{font-size:.69rem;color:#778173;line-height:1.4;margin-bottom:10px}.event-footer{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.event-person{font-size:.66rem;color:#626f60;font-weight:600}.status-label{display:inline-flex;align-items:center;max-width:100%;padding:3px 7px;border-radius:5px;font-size:.66rem;font-weight:650;line-height:1.3;background:#eef0e9;color:#687260;white-space:normal}.status-label.status-confirmed,.status-label.status-booked{background:#deede0;color:#386648}.status-label.status-option,.status-label.status-requested,.status-label.status-open{background:#f5ecd5;color:#8d6a24}.status-label.status-cancelled,.status-label.status-voided,.status-label.status-discarded{background:#ecebe8;color:#7b7b75}.status-label.status-completed,.status-label.status-invoiced{background:#e6edf1;color:#4b687a}.empty-day,.filtered-day{color:#97a08f;text-align:center;font-size:.7rem;line-height:1.5;padding:17px 3px}.calendar-footer{border-top:1px solid var(--line);padding:14px 21px;display:flex;justify-content:space-between;gap:15px;font-size:.69rem;color:var(--muted);border-radius:0 0 var(--radius) var(--radius);background:#fafbf6}.calendar-footer>span:first-child{display:flex;align-items:center;gap:7px}.small-indicator{background:#8da694;width:5px;height:5px;border-radius:50%;flex-shrink:0}
.search-form{display:flex;gap:10px;align-items:center;margin-bottom:24px}.search-form input{max-width:430px}.search-form .text-link{margin-left:5px}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.86rem;text-align:left}.data-table th{font-weight:600;font-size:.71rem;color:var(--muted);padding:10px 13px 13px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:17px 13px;border-bottom:1px solid #edf0e9;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f7f9f3}.row-link{color:var(--ink);font-weight:600}.row-arrow{display:inline-grid;place-items:center;min-width:30px;min-height:30px;font-size:1.1rem;color:#849087}.initials-tag{display:inline-grid;place-items:center;min-width:30px;height:29px;background:#f0f2eb;color:#62715f;border-radius:6px;font-size:.72rem;font-weight:650}.empty-state{text-align:center;padding:49px 20px;max-width:560px;margin:auto}.empty-state h2,.empty-state h3{font-size:1.1rem;margin-bottom:8px}.empty-state p{color:var(--muted);font-size:.86rem;margin-bottom:22px}.empty-symbol{display:inline-grid;place-items:center;width:50px;height:50px;border-radius:14px;background:var(--teal-pale);color:var(--teal);font-size:24px;margin-bottom:18px}.form-panel{max-width:870px;padding:30px}.editor-form>.field{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 24px}.field{min-width:0}.field label{display:block;margin-bottom:7px;font-size:.82rem;font-weight:600}.field-wide{grid-column:1/-1}.field-checkbox{align-self:center}.field-checkbox label{display:flex;align-items:center;gap:8px;min-height:44px;margin:0}.required-mark{color:#929c91}.field-help{color:var(--muted);font-size:.73rem;line-height:1.5;margin:7px 0 0}.field-help ul{padding-left:18px}.field-errors,.form-errors{color:#9f4437;font-size:.8rem;margin-top:7px}.form-errors{padding:14px;background:#fcf0ed;border-radius:8px;border:1px solid #e9ccc4;margin:0 0 23px}.form-actions{display:flex;align-items:center;gap:10px;margin-top:30px;padding-top:23px;border-top:1px solid var(--line)}.form-hint{color:var(--muted);font-size:.73rem;margin-left:auto}.heading-meta{display:flex;gap:12px;align-items:center;font-size:.83rem;color:var(--muted)}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:23px}.detail-main,.detail-aside{min-width:0}.section-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.section-header .muted{font-size:.78rem;margin-bottom:0}.engagement{padding:24px 0;border-top:1px solid var(--line)}.engagement:last-child{padding-bottom:0}.engagement-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:17px}.engagement-heading .eyebrow{font-size:.65rem;margin-bottom:5px}.engagement-heading .muted{font-size:.78rem;margin:0}.engagement-heading .text-link{max-width:210px;font-size:.72rem}.appointment-list{display:flex;flex-direction:column;gap:9px}.appointment-row{display:flex;align-items:center;gap:14px;padding:15px;border:1px solid var(--line);background:#fafbf7;border-radius:9px}.appointment-date{display:flex;flex-direction:column;flex-shrink:0}.appointment-date strong{font-size:.8rem;font-weight:650}.appointment-date>span{font-size:.73rem;color:var(--muted)}.appointment-person{font-size:.78rem;flex:1}.appointment-person small{display:block;color:var(--muted);font-size:.69rem;margin-top:3px}.appointment-row .button{font-size:.69rem}.notes-panel .prose{font-size:.85rem;color:#647063}.prose p:last-child{margin-bottom:0}.detail-facts{font-size:.8rem;margin-bottom:0}.detail-facts dt{font-size:.69rem;color:var(--muted);margin-top:17px}.detail-facts dd{margin:4px 0 0;overflow-wrap:anywhere}.detail-facts-horizontal{display:grid;grid-template-columns:110px 1fr;gap:18px;margin-top:0}.detail-facts-horizontal dt,.detail-facts-horizontal dd{margin:0}.detail-facts-horizontal dt{padding-top:2px}.audit-list{list-style:none;margin:20px 0 0;padding:0}.audit-list li{font-size:.76rem;position:relative;padding:0 0 23px 17px;border-left:1px solid var(--line)}.audit-list li:last-child{padding-bottom:0}.audit-list li:before{content:"";position:absolute;left:-4px;top:5px;width:7px;height:7px;background:#abc5af;border-radius:50%}.audit-list strong{font-weight:600}.audit-list p{margin:4px 0;color:#69766b;font-size:.74rem}.audit-list time{color:#97a08f;font-size:.65rem}.source-badge{border:1px solid #e2d9e9;background:#f7f3fa;color:#8a749b;border-radius:7px;padding:7px 12px;font-size:.77rem}
.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;max-width:1600px;margin:auto}.auth-card{padding:65px clamp(30px,8vw,130px);display:flex;flex-direction:column;justify-content:center;background:var(--paper)}.auth-card>.brand{margin-bottom:12px}.auth-card .test-badge{margin:10px 0 42px}.auth-card h1{margin-top:35px;margin-bottom:12px;font-size:2.5rem}.auth-card .test-badge+h1{margin-top:0}.auth-card>.muted{font-size:.9rem;margin-bottom:29px;max-width:360px}.auth-card .editor-form{max-width:420px}.auth-note{font-size:.73rem;color:var(--muted);border-top:1px solid var(--line);padding-top:23px;margin-top:29px;max-width:420px}.auth-aside{background:#dce8dc;padding:70px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.auth-aside>.eyebrow{color:#547662}.auth-aside h2{font-size:clamp(2rem,4vw,4rem);line-height:1.1;letter-spacing:-2px;font-weight:500;color:#2c5746;margin:20px 0 27px;z-index:1}.auth-aside>p:not(.eyebrow){color:#688473;max-width:320px;font-size:.95rem;z-index:1}.auth-decoration{position:absolute;right:-80px;bottom:-150px;width:440px;height:440px;transform:rotate(-27deg);opacity:.55}.auth-decoration span{display:block;border:1px solid #94b09a;border-radius:60px;position:absolute;inset:0}.auth-decoration span:nth-child(2){inset:40px}.auth-decoration span:nth-child(3){inset:80px}.auth-layout-single{display:flex;justify-content:center;background:#e8eee3;padding:40px 20px}.auth-layout-single .auth-card{padding:40px;border:1px solid var(--line);border-radius:18px;width:100%;max-width:510px;margin:auto;box-shadow:0 15px 50px #253e2510}
@media(min-width:1600px){.main{padding:52px 50px}.day-events{padding:13px 11px 27px}.event-card{padding:13px 11px}.event-card h4{font-size:.9rem}.event-time{font-size:.75rem}.event-location{font-size:.75rem}.event-person{font-size:.72rem}}
@media(max-width:1190px){.sidebar{width:188px;padding:28px 17px 20px}.main{margin-left:188px;padding:32px 24px}.main-public{margin:0;padding:0}.brand-mark{width:37px;height:37px;font-size:26px}.brand{gap:9px}.brand small{font-size:.62rem}.calendar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-day:nth-child(4){border-right:0}.calendar-day:nth-child(n+5){border-top:1px solid var(--line)}.calendar-day:last-child{border-right:1px solid var(--line)}.day-events{min-height:210px}.day-header{flex-direction:row;align-items:center;justify-content:space-between;min-height:53px}.detail-layout{grid-template-columns:minmax(0,1fr)}.detail-aside{display:grid;grid-template-columns:1fr 1fr;gap:23px}.section-header{align-items:flex-start}.calendar-view-label{display:none}.speaker-filter{margin-left:0}.auth-aside{padding:50px}.appointment-row{flex-wrap:wrap}}
@media(max-width:760px){.sidebar{position:static;width:100%;padding:18px 20px 0;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:15px;background:var(--paper)}.sidebar>.test-badge{margin:0;align-self:center}.brand strong{font-size:1.15rem}.brand small{font-size:.63rem}.main-nav{grid-column:1/-1;flex-direction:row;justify-content:space-between;gap:4px;padding-bottom:9px}.main-nav a{gap:6px;padding:9px 11px;font-size:.79rem}.main-nav a>span{font-size:1rem;width:16px}.sidebar-bottom{grid-column:1/-1;padding:0;margin:0;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px;padding-bottom:12px}.user-identity{border:0;padding:0}.avatar{width:27px;height:27px;font-size:.65rem}.user-identity strong{font-size:.75rem}.user-identity small{display:none}.logout{margin:0;width:auto;gap:10px;font-size:.73rem}.main{margin:0;padding:27px 20px}.main-public{padding:0}.page-header{align-items:flex-start;gap:16px;margin-bottom:24px}.page-header .button{font-size:.75rem;padding:10px 12px;max-width:155px}.page-header .eyebrow{font-size:.64rem;margin-bottom:9px}.page-header .muted{font-size:.79rem;max-width:310px}.calendar-toolbar{padding:18px 15px 15px}.week-navigation{gap:6px}.week-navigation h2{font-size:.88rem;min-width:130px}.calendar-filters{padding:0 15px 18px;gap:7px}.filter-caption{width:100%;font-size:.65rem}.filter-chip{font-size:.7rem;padding:6px 8px}.speaker-filter summary{font-size:.7rem}.filter-popover{left:0;right:auto}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day:nth-child(2n){border-right:0}.calendar-day:nth-child(n+3){border-top:1px solid var(--line)}.calendar-day:last-child{border-right:1px solid var(--line)}.day-header{padding:13px 11px}.day-events{min-height:165px;padding:10px 8px 16px}.event-card h4{font-size:.83rem}.calendar-footer{padding:13px 15px;font-size:.64rem;align-items:flex-start}.calendar-footer>span:first-child{align-items:flex-start}.calendar-footer>span:last-child{white-space:nowrap}.small-indicator{margin-top:6px}.information-note{font-size:.73rem}.panel{padding:20px}.form-grid{grid-template-columns:1fr;gap:20px}.form-panel{padding:22px}.form-actions{flex-wrap:wrap}.form-hint{font-size:.7rem}.search-form{flex-wrap:wrap;gap:8px}.search-form input{flex:1;min-width:150px}.search-form .text-link{width:100%;margin-top:5px}.data-table th,.data-table td{padding:12px 10px;font-size:.76rem}.data-table th{font-size:.67rem}.data-table td:first-child{min-width:130px}.section-header{flex-direction:column;gap:12px}.engagement-heading{flex-direction:column;align-items:flex-start}.engagement-heading .text-link{max-width:none}.appointment-row{gap:10px}.appointment-date{min-width:120px}.appointment-person{min-width:100px}.detail-aside{grid-template-columns:1fr;gap:0}.detail-facts-horizontal{grid-template-columns:80px 1fr;gap:14px}.heading-meta{font-size:.74rem}.source-badge{font-size:.65rem;max-width:115px;text-align:center}.auth-layout{grid-template-columns:1fr;min-height:100vh}.auth-card{padding:50px 30px}.auth-aside{display:none}.auth-card h1{font-size:2.2rem}.auth-layout-single{padding:20px}.auth-layout-single .auth-card{padding:30px}.empty-state{padding:35px 5px}}
@media(max-width:410px){.main{padding:23px 14px}.main-public{padding:0}.sidebar{padding:16px 14px 0}.main-nav a{font-size:.74rem;padding:9px 8px}.main-nav a>span{display:none}.calendar-grid{grid-template-columns:1fr}.calendar-day{border-right:0!important}.calendar-day:nth-child(n+2){border-top:1px solid var(--line)}.day-events{min-height:0;padding:12px}.day-header{min-height:45px;padding:11px 13px}.event-footer{flex-direction:row;justify-content:space-between;align-items:center}.empty-day,.filtered-day{padding:3px;margin:0;text-align:left}.calendar-footer{flex-direction:column;gap:6px}.page-header h1{font-size:1.9rem}.week-navigation h2{min-width:115px;font-size:.8rem}.week-navigation .button{margin-left:2px;font-size:.7rem;padding:7px 9px}.filter-chip{font-size:.67rem}.filter-chip input{width:12px;height:12px}.event-card h4{font-size:.91rem}.event-time{font-size:.76rem}.event-location{font-size:.76rem}.event-person{font-size:.72rem}}
@media(prefers-reduced-motion:no-preference){.button,.main-nav a,.filter-chip{transition:background-color .15s,border-color .15s,color .15s}}
@media print{.sidebar,.button,.back-link,.calendar-filters,.calendar-toolbar .icon-button,.information-note{display:none!important}.main{margin:0;padding:0}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{border-top:0!important}.day-events{min-height:0}.calendar-shell,.panel{box-shadow:none}.event-card{break-inside:avoid}.detail-layout{display:block}}

@media(max-width:760px){.main-nav{flex-wrap:wrap;justify-content:flex-start}.main-nav a{flex:0 0 auto}}

.engagement-actions{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.password-link{display:block;color:var(--muted);font-size:.72rem;margin-bottom:14px}.status-label.status-alternative_declined{background:#ecebe8;color:#7b7b75}@media(max-width:760px){.sidebar-bottom{flex-wrap:wrap}.password-link{order:3;margin:5px 0 0;width:100%;font-size:.65rem}.engagement-actions{align-items:flex-start}}

.event-unassigned{background:#f3f4ef;border-color:#dfe3d8;border-left-color:#9bA78e}

/* Calendar freshness and deliberate filtering stay visible above every week. */
.calendar-state{display:flex;align-items:flex-start;gap:12px;margin:0 23px 20px;padding:15px 17px;border:1px solid #cbded3;border-left:4px solid var(--teal);border-radius:9px;background:#f0f7f1;color:#375c48}
.calendar-state>div:not(.calendar-state-actions){flex:1;min-width:0}
.calendar-state strong{display:block;font-size:.86rem;line-height:1.4}
.calendar-state p{font-size:.77rem;line-height:1.5;margin:5px 0 3px}
.calendar-last-check{display:block;font-size:.7rem;line-height:1.5;opacity:.9}
.calendar-state-indicator{width:8px;height:8px;border-radius:50%;background:var(--teal);flex-shrink:0;margin-top:6px}
.calendar-state[data-state=checking]{background:#f6f5e9;border-color:#e2d8af;border-left-color:#a78325;color:#726222}
.calendar-state[data-state=checking] .calendar-state-indicator{background:#a78325}
.calendar-state[data-state=warning],.calendar-no-script{background:#fff1db;border-color:#d8b876;border-left-color:#a66516;color:#794b10}
.calendar-state[data-state=warning] .calendar-state-indicator{background:#a66516}
.calendar-state-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.calendar-state-actions .button{font-size:.71rem;background:#ffffffb8}
.calendar-state-actions [aria-busy=true]{cursor:progress}
.calendar-filter-notice{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 23px 20px;padding:12px 16px;border:1px solid #dbbc74;border-radius:8px;background:#fff7e2;color:#76581c}
.calendar-filter-notice p{font-size:.84rem;font-weight:650;margin:0}
.calendar-filter-notice .button{flex-shrink:0;background:#fffdf5;border-color:#d8bc80;color:#76581c}
.calendar-no-script{margin:0 23px 20px;padding:14px 17px;border:1px solid #d8b876;border-radius:8px;font-size:.8rem}
.calendar-unavailable{text-align:center;padding:60px 25px;background:#faf8f0;border-top:1px solid var(--line);color:var(--muted)}
.calendar-unavailable h2{color:var(--ink)}
.calendar-unavailable p{max-width:480px;margin:0 auto;font-size:.86rem}
@media(max-width:900px){.calendar-state{flex-wrap:wrap}.calendar-state-actions{width:100%;justify-content:flex-start;padding-left:20px}}
@media(max-width:760px){.calendar-state,.calendar-filter-notice,.calendar-no-script{margin-left:15px;margin-right:15px}.calendar-state{padding:13px;gap:10px}.calendar-state strong{font-size:.79rem}.calendar-state p{font-size:.73rem}.calendar-last-check{font-size:.67rem}.calendar-filter-notice{align-items:flex-start;padding:11px 12px}.calendar-filter-notice p{font-size:.77rem}.calendar-filter-notice .button{font-size:.7rem}.calendar-state-actions{padding-left:18px}}
@media print{.calendar-state-actions{display:none}.calendar-state,.calendar-filter-notice{break-inside:avoid;print-color-adjust:exact}}

/* Job overview: the same information stays grouped on desktop and on a phone. */
.job-overview{--job-muted:#738078;--job-border:#dfe6df;max-width:1800px;margin:0 auto}
.job-topline{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}
.job-topline .back-link{margin:0}
.job-topline>span{font-size:.7rem;color:var(--job-muted);text-align:right}
.job-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.job-heading{display:flex;gap:22px;align-items:center;min-width:0}
.job-number{display:flex;flex-direction:column;justify-content:center;min-width:112px;min-height:84px;padding:13px 18px;background:#e6f0e9;border:1px solid #cddfd2;border-radius:12px;color:#245c4d}
.job-number small{font-size:.64rem;text-transform:uppercase;letter-spacing:1px;font-weight:600}
.job-number strong{font-size:1.9rem;line-height:1.35;letter-spacing:-.7px;font-weight:650}
.job-heading>div{min-width:0}
.job-heading h1{font-size:clamp(1.5rem,2.3vw,2.3rem);line-height:1.2;margin:9px 0 0;overflow-wrap:anywhere;letter-spacing:-.6px}
.job-heading-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#748074;font-size:.82rem}
.job-heading-meta .status-label{font-size:.7rem}
.job-header>.button{flex-shrink:0}
.job-jumpnav{display:flex;gap:23px;align-items:center;overflow-x:auto;border-bottom:1px solid var(--job-border);margin-bottom:20px;padding:0 1px;scrollbar-width:thin}
.job-jumpnav a{display:block;flex-shrink:0;font-size:.74rem;padding:0 0 12px;color:#64746a;font-weight:600}
.job-jumpnav a:hover{color:var(--teal);text-decoration:none}
.job-at-a-glance{display:grid;grid-template-columns:1.2fr 1fr 1.3fr .8fr;gap:0;border:1px solid var(--job-border);border-radius:11px;background:#fffefa;margin-bottom:24px}
.job-at-a-glance>div{padding:16px 20px;border-right:1px solid var(--job-border);min-width:0}
.job-at-a-glance>div:last-child{border-right:0}
.job-at-a-glance span,.job-at-a-glance small{display:block;color:var(--job-muted);font-size:.67rem}
.job-at-a-glance strong{display:block;font-size:.88rem;line-height:1.4;margin-top:5px;font-weight:650;overflow-wrap:anywhere}
.job-at-a-glance small{margin-top:4px}
.job-workspace{display:grid;grid-template-columns:minmax(190px,1fr) minmax(230px,1.17fr) minmax(185px,.93fr) minmax(205px,1.08fr) minmax(205px,1.08fr);gap:12px;align-items:start}
.job-column{display:flex;flex-direction:column;gap:12px;min-width:0}
.job-panel{--job-accent:#c8d2ca;--job-fill:#efede7;background:var(--job-fill);border:1px solid var(--job-accent);border-radius:9px;padding:15px;min-width:0;scroll-margin-top:24px;container-type:inline-size}
.job-accent-green{--job-accent:#a2c4a3;--job-fill:#e4f2e4}
.job-accent-blue{--job-accent:#afc8dd;--job-fill:#e3effa}
.job-accent-olive{--job-accent:#bacb9c;--job-fill:#edf2dc}
.job-accent-yellow{--job-accent:#d9c878;--job-fill:#fff2c5}
.job-accent-rose{--job-accent:#d8aba5;--job-fill:#f5dddd}
.job-accent-orange{--job-accent:#d9bd90;--job-fill:#f5e9d4}
.job-accent-neutral{--job-accent:#ccc8bc;--job-fill:#efede7}
.job-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:17px}
.job-panel-heading h2{font-size:.88rem;line-height:1.35;letter-spacing:-.15px;margin:0;font-weight:700}
.job-panel-heading .text-link{flex-shrink:0;font-size:.66rem;padding-top:1px}
.job-count{display:inline-flex;align-items:center;white-space:nowrap;color:#6f7e73;background:#f0f3ec;border-radius:5px;padding:2px 6px;font-size:.63rem;font-weight:600}
.job-scope{display:inline-block;flex-shrink:0;padding:3px 6px;border:1px solid #e1e6df;border-radius:5px;background:#f7f8f3;font-size:.61rem;color:#788174;font-weight:500}
.job-scope-onsite{border-color:#c8ddd1;color:#377657;background:#eff7ef}
.job-label{display:block;color:var(--job-muted);font-size:.65rem;margin-bottom:6px}
.job-panel h3{font-size:.86rem;font-weight:650;line-height:1.4;overflow-wrap:anywhere}
.job-customer-name{margin:0 0 12px;font-size:.95rem!important}
.job-address{font-size:.77rem;color:#69766d;line-height:1.6;font-style:normal;overflow-wrap:anywhere;margin:0 0 14px}
.job-contact-links{display:flex;flex-direction:column;gap:7px;font-size:.74rem;margin:10px 0;overflow-wrap:anywhere}
.job-contact-links a{display:block;line-height:1.4}
.job-contact-links a>span{display:inline-block;min-width:34px;color:var(--job-muted);font-size:.65rem}
.job-contact-fax{font-size:.68rem;color:var(--job-muted)}
.job-customer-note{margin-top:17px;padding-top:15px;border-top:1px solid #e7ebe3}
.job-customer-note .job-prose{font-size:.73rem;color:#6e7b70}
.job-contacts{margin-top:-3px}
.job-contact{padding:15px 0;border-bottom:1px solid #e8ece4}
.job-contact:first-child{padding-top:0}
.job-contact:last-child{border-bottom:0}
.job-contact-heading{display:flex;justify-content:space-between;gap:5px;align-items:start}
.job-contact-heading h3{margin:0}
.job-icon-link{display:inline-grid;place-items:center;min-width:28px;min-height:28px;margin:-4px -5px 0 0;color:#738c7e;font-size:.9rem;border-radius:4px}
.job-icon-link:hover{background:#eff4ed;text-decoration:none}
.job-contact-role{font-size:.7rem;color:var(--job-muted);margin:3px 0 8px}
.job-contact-tags{display:flex;flex-wrap:wrap;gap:5px}
.job-contact-tags:empty{display:none}
.job-contact .job-contact-links{margin-bottom:0}
.job-full{width:100%;margin-top:10px}
.job-empty{font-size:.75rem;color:#859084;line-height:1.6;font-weight:400;margin:0 0 14px}
.job-empty:last-child{margin-bottom:0}
.job-subtle-note{font-size:.68rem;color:#81907f;line-height:1.6;margin-bottom:15px}
.job-station{padding:15px 0;border-top:1px solid #e6ece3}
.job-station:first-child{padding-top:0;border-top:0}
.job-station:last-child{padding-bottom:0}
.job-station-heading{display:flex;align-items:start;justify-content:space-between;gap:5px}
.job-station-heading h3{font-size:.77rem;color:#5f7164;margin-bottom:10px}
.job-date-choice{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e3e9e0;border-left:3px solid #d8e0d5;background:#fafbf6;border-radius:7px;padding:11px 10px;margin-bottom:7px;color:var(--ink)}
.job-date-choice:hover{border-color:#94b09b;background:#f2f7ed;text-decoration:none}
.job-date-choice.is-selected{border-color:#9ebea7;border-left-color:var(--teal);background:#eef6ed}
.job-date-choice>span:first-child{min-width:0}
.job-date-choice strong{display:block;font-size:.76rem;font-weight:650}
.job-date-choice small{display:block;color:#7a877a;font-size:.63rem;margin-top:4px}
.job-date-choice .status-label{font-size:.59rem;max-width:85px;flex-shrink:0}
.job-add-alternative{display:block;font-size:.65rem;margin-top:9px}
.job-date-hero{padding:14px;background:#f0f6ed;border:1px solid #dce8d8;border-radius:8px;margin-bottom:18px;display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px}
.job-date-hero>span:first-child{display:block;width:100%;color:#75896f;font-size:.68rem}
.job-date-hero>strong{font-size:1.12rem;font-weight:650;letter-spacing:-.3px}
.job-date-hero>.status-label{margin-left:auto;font-size:.6rem}
.job-facts{margin:0}
.job-facts-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 16px}
.job-facts>div{min-width:0}
.job-facts dt{font-size:.65rem;color:var(--job-muted);margin-bottom:5px}
.job-facts dd{font-size:.79rem;line-height:1.45;margin:0;overflow-wrap:anywhere}
.job-appointment-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid #e5ebe0;margin-top:17px;padding-top:15px}
.job-appointment-actions .button{font-size:.67rem;padding:7px 10px}
.job-appointment-actions+.job-subtle-note{margin-top:10px;margin-bottom:0}
.job-cancel{font-size:.65rem;color:#93736b}
.job-cancel summary{cursor:pointer}
.job-cancel p{font-size:.71rem;line-height:1.5;max-width:180px;margin:10px 0}
.job-text-block{margin-top:18px}
.job-text-block>p{font-size:.78rem;line-height:1.5;margin-bottom:0;overflow-wrap:anywhere}
.job-prose{font-size:.79rem;line-height:1.65;overflow-wrap:anywhere}
.job-prose p{margin-bottom:10px}
.job-prose p:last-child{margin-bottom:0}
.job-onsite-list{list-style:none;padding:0;margin:0}
.job-onsite-list li{font-size:.76rem;padding:5px 0}
.job-onsite-list a{display:block;font-size:.7rem;margin-top:3px}
.job-editor{margin-top:18px;padding-top:13px;border-top:1px solid #e6ebe2;scroll-margin-top:24px}
.job-editor summary{color:var(--teal);font-weight:600;font-size:.71rem;cursor:pointer;line-height:1.6}
.job-editor summary small{font-weight:400;font-size:.65rem;display:block;margin-left:14px;color:var(--job-muted)}
.job-editor[open]>summary{margin-bottom:15px}
.job-editor>form{padding-top:3px}
.job-editor-note{font-size:.69rem;color:#7c877b;line-height:1.6;margin-bottom:15px}
.job-editor-first{border:0;padding-top:0;margin-top:0;padding-bottom:16px}
.job-appointment-editor-panel{padding-top:12px;padding-bottom:12px}
.job-appointment-editor-panel>.job-editor{margin:0;border:0;padding:0}
.job-form-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:15px}
.job-form-fields .field label{font-size:.72rem;line-height:1.45;margin-bottom:5px}
.job-form-fields input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.job-form-fields select,.job-form-fields textarea{font-size:.79rem;min-height:39px;padding:9px 10px;border-radius:6px}
.job-form-fields textarea{min-height:94px}
.job-form-fields .field-help{font-size:.66rem;line-height:1.5}
.job-form-fields .field-checkbox label{min-height:30px;font-size:.71rem;font-weight:500}
.job-form-fields .field-checkbox>div label{padding:5px 0}
.job-form-fields .field-checkbox>div:empty:after{content:"Noch keine Ansprechpartner vorhanden.";color:var(--job-muted);font-size:.7rem}
.job-form-fields .field-errors,.job-editor .form-errors{font-size:.72rem}
.job-save{margin-top:17px;padding-top:14px;border-top:1px solid #e5eae0;display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.job-save .button{font-size:.73rem;min-height:39px;padding:9px 12px}
.job-unsaved{color:#9b761c;font-size:.65rem}
.job-next-task{padding:12px 13px;border-radius:8px;border:1px solid #dce5e7;background:#f1f5f5;margin-bottom:15px}
.job-next-task>span{display:block;text-transform:uppercase;letter-spacing:.7px;font-size:.6rem;color:#7a8b8e;margin-bottom:5px;font-weight:600}
.job-next-task strong{display:block;font-size:.79rem}
.job-next-task small{display:block;font-size:.67rem;color:#7b8a83;margin-top:4px}
.job-task-list{list-style:none;padding:0;margin:0}
.job-task-list li{display:flex;align-items:start;gap:10px;padding:11px 0;border-bottom:1px solid #edf0e8}
.job-task-list li:last-child{border:0}
.job-task-list li.job-empty{display:block}
.job-task-check{display:grid;place-items:center;min-width:29px;height:29px;border:1px solid #c7d5c8;border-radius:7px;background:#fff;color:#44765a;font-size:.9rem;margin-top:1px}
.job-task-check:hover{background:#e9f4e8;border-color:#93b39a}
.job-task-check>span{width:11px;height:11px;border:1px solid #ced8ca;border-radius:2px}
.job-task-title{display:block;font-size:.76rem;color:#425d50;font-weight:550;overflow-wrap:anywhere}
.job-task-list small{display:block;font-size:.63rem;color:#8a9387;margin-top:4px}
.job-task-list .is-complete .job-task-title{color:#899184;text-decoration:line-through}
.job-task-list .is-complete .job-task-check{background:#eaf3e6;color:#709064;border-color:#d4e1cb}
.job-task-list .job-task-completed{color:#6b8861}
.job-timeline{list-style:none;padding:0;margin:0}
.job-timeline>li{padding:18px 0;border-top:1px solid #e5eadf}
.job-timeline>li:last-child{padding-bottom:0}
.job-timeline-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.job-timeline-heading .initials-tag{min-width:28px;height:28px;font-size:.62rem;background:#edf0e1}
.job-timeline-heading>div{flex:1}
.job-timeline-heading strong{display:block;font-size:.67rem;color:#697762;font-weight:600}
.job-timeline-heading time{display:block;font-size:.6rem;color:#97a08d;margin-top:2px}
.job-timeline-heading .job-scope{font-size:.57rem;max-width:105px}
.job-timeline h3{font-size:.8rem;margin-bottom:8px}
.job-timeline .job-prose{font-size:.75rem;color:#5c6c57}
.job-timeline-contact{font-size:.65rem;color:#86917b;margin-bottom:9px}
.job-entry-author{display:block;margin-top:10px;font-size:.59rem;color:#99a18f}
.job-money-list{margin:0;font-size:.74rem}
.job-money-list>div{display:flex;align-items:start;justify-content:space-between;gap:10px;padding:7px 0}
.job-money-list dt{color:#82907d;font-size:.69rem;max-width:60%;line-height:1.5}
.job-money-list dd{text-align:right;margin:0;font-size:.74rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.job-money-list .job-money-total{border-bottom:1px solid #e4eadd;margin-bottom:7px;padding-bottom:13px}
.job-money-total dt{font-size:.76rem;color:#506c5c}
.job-money-total dd{font-size:1.14rem;color:#355c49;line-height:1.25;font-weight:650;letter-spacing:-.3px}
.job-money-list .job-money-detail{padding-top:0}
.job-money-detail dt,.job-money-detail dd{font-size:.59rem;color:#939d8b}
.job-finance-group{border-top:1px solid #e5eadf;margin-top:13px;padding-top:17px}
.job-finance-group>.job-label{margin-bottom:6px}
.job-finance-flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}
.job-finance-flags>span{font-size:.58rem;padding:4px 6px;border-radius:4px;background:#f3f1e9;color:#9c947f}
.job-invoice{padding:15px 0;border-top:1px solid #e6ebe0}
.job-invoice:first-child{padding-top:0;border:0}
.job-invoice>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}
.job-invoice h3{margin-bottom:0;font-size:.79rem}
.job-invoice>div>strong{font-size:.8rem;font-weight:650}
.job-invoice>p{font-size:.64rem;color:#87917e;margin-top:5px;margin-bottom:7px}
.job-invoice .job-money-list dt,.job-invoice .job-money-list dd{font-size:.64rem}
.job-invoice .text-link{display:block;font-size:.64rem;margin-top:9px}
.job-invoice p.job-invoice-note{color:#788371;line-height:1.6}
.job-paid{color:#4d805b}
.job-payment-open{color:#ac823b}
.job-speaker-card{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.job-speaker-avatar{display:grid;place-items:center;min-width:39px;height:39px;background:#f5efdf;color:#a38656;border-radius:10px;font-size:.79rem;font-weight:600}
.job-speaker-card h3{font-size:.84rem;margin-bottom:5px}
.job-speaker-card .status-label{font-size:.59rem}
.job-speaker-card~.text-link{font-size:.66rem}
.job-document-list{list-style:none;margin:0;padding:0}
.job-document-list li{padding:12px 0;border-top:1px solid #edf0e7}
.job-document-list li:first-child{border-top:0;padding-top:0}
.job-document-list li>a:first-child{display:flex;justify-content:space-between;gap:6px;font-size:.76rem;overflow-wrap:anywhere}
.job-document-list li>.text-link{font-size:.6rem;display:inline-block;color:#879580;margin-top:5px}
.job-history-panel details>summary{font-size:.73rem;color:#768570;cursor:pointer;font-weight:600}
.job-history-panel details>summary>.job-count{float:right}
.job-history-panel .audit-list strong{font-size:.68rem}
.job-history-panel .audit-list p{font-size:.66rem}
.job-history-panel .audit-list time{font-size:.61rem}
.job-created{font-size:.61rem;color:#97a18e;line-height:1.6;border-top:1px solid #e5eadf;padding-top:14px;margin:15px 0 0}
@container(min-width:380px){.job-form-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1490px) and (min-width:1101px){.job-workspace{grid-template-columns:minmax(200px,1fr) minmax(245px,1.17fr) minmax(220px,1.05fr)}.job-customer-column{grid-column:1;grid-row:1}.job-event-column{grid-column:2;grid-row:1/span 2}.job-finance-column{grid-column:3;grid-row:1}.job-work-column{grid-column:1;grid-row:2}.job-development-column{grid-column:3;grid-row:2}}
@media(max-width:1100px) and (min-width:761px){.job-workspace{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.job-customer-column{grid-column:1;grid-row:1}.job-event-column{grid-column:2;grid-row:1}.job-finance-column{grid-column:2;grid-row:2}.job-work-column{grid-column:1;grid-row:2}.job-development-column{grid-column:1/-1;grid-row:3}.job-at-a-glance{grid-template-columns:1fr 1fr}.job-at-a-glance>div:nth-child(2){border-right:0}.job-at-a-glance>div:nth-child(n+3){border-top:1px solid var(--job-border)}.job-jumpnav{gap:19px}.job-header{align-items:start}.job-heading{gap:15px}.job-number{min-width:100px}.job-header>.button{font-size:.73rem}}
@media(max-width:760px){.job-topline{align-items:start;margin-bottom:19px}.job-topline>span{font-size:.58rem;max-width:155px;line-height:1.5}.job-header{align-items:start;gap:10px;margin-bottom:20px;flex-wrap:wrap}.job-heading{align-items:start;gap:13px;width:100%}.job-number{min-width:86px;min-height:74px;padding:12px}.job-number strong{font-size:1.6rem}.job-number small{font-size:.53rem;letter-spacing:.8px}.job-heading h1{font-size:1.45rem;margin-top:7px}.job-heading-meta{font-size:.71rem;gap:7px}.job-heading-meta .status-label{font-size:.61rem}.job-header>.button{margin-left:99px;font-size:.7rem;min-height:34px;padding:7px 11px}.job-jumpnav{gap:21px;margin-bottom:16px}.job-jumpnav a{font-size:.7rem;padding-bottom:11px}.job-at-a-glance{grid-template-columns:1fr 1fr;margin-bottom:19px}.job-at-a-glance>div{padding:13px 14px}.job-at-a-glance>div:nth-child(2){border-right:0}.job-at-a-glance>div:nth-child(n+3){border-top:1px solid var(--job-border)}.job-at-a-glance span,.job-at-a-glance small{font-size:.59rem}.job-at-a-glance strong{font-size:.77rem}.job-workspace{display:flex;flex-direction:column;gap:15px}.job-column{display:contents}.job-panel{width:100%;padding:19px;border-radius:10px;scroll-margin-top:15px}.job-panel-heading h2{font-size:.97rem}.job-panel-heading .text-link{font-size:.73rem}.job-panel h3{font-size:.94rem}.job-contact-links{font-size:.84rem}.job-prose{font-size:.86rem}.job-facts dt{font-size:.7rem}.job-facts dd{font-size:.87rem}.job-empty{font-size:.81rem}.job-editor summary{font-size:.8rem}.job-editor-note{font-size:.75rem}.job-form-fields input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.job-form-fields select,.job-form-fields textarea{font-size:16px;min-height:44px}.job-form-fields .field label{font-size:.79rem}.job-form-fields .field-help{font-size:.71rem}.job-form-fields .field-checkbox label{font-size:.78rem;min-height:35px}.job-save .button{min-height:42px;font-size:.8rem}.job-contact .job-icon-link{min-width:36px;min-height:36px}.job-task-check{min-width:36px;height:36px}.job-task-title{font-size:.85rem}.job-task-list small{font-size:.7rem}.job-timeline h3{font-size:.89rem}.job-timeline .job-prose{font-size:.83rem}.job-money-list dt{font-size:.78rem}.job-money-list dd{font-size:.82rem}.job-money-total dd{font-size:1.3rem}.job-date-choice strong{font-size:.85rem}.job-date-choice small{font-size:.7rem}.job-date-choice .status-label{font-size:.66rem}.job-at-a-glance>div:nth-child(3) strong{font-size:.76rem}}
@media(prefers-reduced-motion:no-preference){.job-date-choice,.job-task-check{transition:background-color .15s,border-color .15s}}
@media print{.job-jumpnav,.job-editor,.job-appointment-actions,.job-icon-link,.job-task-check,.job-topline,.job-header>.button{display:none!important}.job-workspace{display:block;columns:2;column-gap:20px}.job-column{display:contents}.job-panel{break-inside:avoid;margin-bottom:15px}.job-at-a-glance{break-inside:avoid}.job-panel .text-link,.job-full{display:none!important}}

.job-fieldset{border:0;margin:20px 0 0;padding:0;min-width:0}.job-fieldset:first-of-type{margin-top:0}.job-fieldset legend{padding:0 0 12px;font-size:.73rem;color:#67806c;font-weight:650}.job-fieldset+.job-fieldset{padding-top:18px;border-top:1px solid #e6ebe2}

/* Customer editor with direct links to every job belonging to this customer. */
.customer-workspace{display:grid;grid-template-columns:minmax(0,870px) minmax(270px,370px);gap:22px;align-items:start;max-width:1262px}
.customer-workspace>.panel{min-width:0;margin-bottom:0}
.customer-workspace>.form-panel{max-width:none}
.customer-editor-panel{grid-column:1;grid-row:1}
.customer-contacts-panel{grid-column:1;grid-row:2}
.customer-jobs-panel{grid-column:2;grid-row:1/span 2}
.customer-jobs-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px}
.customer-jobs-heading h2{margin:0;font-size:1rem}
.customer-jobs-count{display:inline-grid;place-items:center;min-width:28px;min-height:27px;padding:3px 8px;border-radius:7px;background:var(--teal-pale);color:var(--teal);font-size:.73rem;font-weight:650}
.customer-jobs-hint,.customer-jobs-empty{font-size:.78rem;line-height:1.6;color:var(--muted)}
.customer-jobs-hint{margin:0 0 17px}
.customer-jobs-empty{margin:0}
.customer-jobs-scroll{max-height:36rem;overflow-y:auto;scrollbar-width:thin;padding:4px;margin:-4px;border-radius:7px}
.customer-jobs-scroll:focus-visible{outline:3px solid #428dbe;outline-offset:3px}
.customer-jobs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.customer-job-link{display:block;position:relative;border:1px solid var(--line);border-radius:9px;padding:14px;background:#fafbf7;color:var(--ink);overflow-wrap:anywhere}
.customer-job-link:hover{background:var(--teal-pale);border-color:#abc4b8;text-decoration:none}
.customer-job-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;margin-bottom:8px}
.customer-job-meta>strong{font-size:.81rem;color:var(--teal);font-weight:650}
.customer-job-title{display:block;padding-right:20px;font-size:.84rem;line-height:1.5}
.customer-job-arrow{position:absolute;right:14px;bottom:13px;color:#849087;font-size:.95rem}
@media(max-width:1100px){.customer-workspace{display:flex;flex-direction:column;max-width:870px}.customer-workspace>.panel{width:100%}.customer-jobs-scroll{max-height:27rem}}
@media print{.customer-workspace{display:block}.customer-workspace>.panel{margin-bottom:22px}.customer-jobs-scroll{max-height:none;overflow:visible}}
/* Business calendar colours are determined by speaker and booking status. */
.event-card.event-primary.status-confirmed,.event-card.event-primary.status-option{background:#ffd3a0;border-color:#e9b36f;border-left-color:#d7750f}
.event-card.event-primary.status-open{background:#deefff;border-color:#b5d4f0;border-left-color:#5593be}
.event-card.event-colleague.status-confirmed,.event-card.event-colleague.status-option{background:#e8d19a;border-color:#d1b671;border-left-color:#a67c24}
.event-card.event-colleague.status-open{background:#eef0f2;border-color:#d0d5da;border-left-color:#8a939c}
.event-card:not(.event-private).status-cancelled,.event-card:not(.event-private).status-voided,.event-card:not(.event-private).status-discarded,.event-card:not(.event-private).status-alternative_declined{background:#f2f1ee;border-color:#d6d3cd;border-left-color:#9b978f;border-style:solid;opacity:1}
.event-card:not(.event-private) .event-time,.event-card:not(.event-private) .event-location,.event-card:not(.event-private) .event-person{color:#46524c}
.event-card:not(.event-private) .status-label{background:#ffffffb8;color:#39453e}
.event-option-until{font-weight:700}
.event-station,.event-date-choice{font-size:.71rem;line-height:1.4;color:#46524c;margin-bottom:7px}.event-date-choice{font-style:italic}
.calendar-status-legend{display:flex;flex-wrap:wrap;gap:8px 17px;padding:0 23px 19px;color:#56635b;font-size:.72rem}
.calendar-status-legend>span{display:inline-flex;align-items:center;gap:7px}
.calendar-colour{display:inline-block;width:15px;height:12px;border:1px solid;border-left-width:3px;border-radius:3px;flex-shrink:0}
.calendar-colour.primary-confirmed{background:#ffd3a0;border-color:#d7750f}
.calendar-colour.primary-open{background:#deefff;border-color:#5593be}
.calendar-colour.colleague-confirmed{background:#e8d19a;border-color:#a67c24}
.calendar-colour.colleague-open{background:#eef0f2;border-color:#8a939c}
.calendar-status-legend .calendar-option-hint{color:var(--muted)}
@media(max-width:760px){.calendar-status-legend{padding-left:15px;padding-right:15px;gap:8px 13px;font-size:.68rem}.calendar-option-hint{width:100%}}
@media print{.event-card,.calendar-colour{print-color-adjust:exact}}
/* The five work areas use full, distinct colour fields, like the original job form. */
.job-overview{--job-muted:#5d6c64}
.job-overview .job-panel-heading{margin-bottom:13px}
.job-overview .job-panel-heading h2{font-size:.91rem}
.job-overview .job-panel-heading .text-link{white-space:normal;text-align:right}
.job-overview .job-column .job-panel{--job-border:var(--job-accent)}
.job-overview .job-editor,.job-overview .job-customer-group,.job-overview .job-customer-note,.job-overview .job-finance-group,.job-overview .job-invoice,.job-overview .job-timeline>li,.job-overview .job-contact,.job-overview .job-document-list li,.job-overview .job-save{border-color:#53685a2b}
.job-overview .job-scope,.job-overview .job-count{background:#ffffff9c;color:#506157;border-color:#66745b30}
.job-overview .job-empty,.job-overview .job-subtle-note,.job-overview .job-editor-note{color:#657166}
.job-overview .job-contact-links,.job-overview .job-prose,.job-overview .job-facts dd{line-height:1.5}
.job-overview .job-date-choice{background:#ffffff8c;flex-wrap:wrap}
.job-overview .job-date-choice.is-selected{background:#f5fff5;border-color:#729c7b;border-left-color:#39734c}
.job-overview .job-date-choice .status-label{max-width:100%}
.job-overview .job-date-hero{padding:11px;background:#ffffff80;border-color:#b4cfb5}
.job-overview .job-date-hero>.status-label{margin-left:0}
.job-overview .job-facts-pairs{gap:12px}
.job-overview .job-stations{margin-top:18px}
.job-overview .job-station{border-color:#53685a2b}
.job-booking-status>strong{display:block;font-size:.83rem}
.job-customer-group{border-top:1px solid #53685a2b;margin-top:18px;padding-top:17px;scroll-margin-top:24px}
.job-contact-group-title{color:#586b60;font-size:.72rem!important;font-weight:700!important;margin-bottom:13px!important}
.job-overview .job-contact-primary-onsite{padding:12px;margin:0 -5px 10px;border:1px solid #7caa87;border-left:4px solid #39734c;border-radius:7px;background:#f5fff0}
.job-overview .job-scope-primary-onsite{background:#d9ebcb;border-color:#a1bf8e;color:#315324;font-weight:700}
.job-overview .job-scope-onsite{background:#e1ecdc;border-color:#b5c7ac;color:#42663b}
.job-overview .job-speaker-avatar{background:#c9dfef;color:#376179}
.job-hotel-name{margin-top:16px}
.job-development-add{display:block;font-size:.68rem;margin-bottom:14px}
.job-overview .job-timeline-heading{flex-wrap:wrap}
.job-overview .job-timeline-heading .job-scope{max-width:100%;margin-left:36px}
.job-overview .job-timeline-heading time,.job-overview .job-entry-author,.job-overview .job-timeline-contact{color:#716a4d}
.job-overview .job-timeline .job-prose{color:#4d503e}
.job-overview .job-timeline-heading .initials-tag{background:#e9dca3;color:#635d3b}
.job-overview .job-money-list dt,.job-overview .job-money-detail dd{color:#566c79}
.job-overview .job-money-total dt,.job-overview .job-money-total dd{color:#315771}
.job-overview .job-finance-flags>span{background:#ffffff94;color:#5e6773}
.job-overview .job-next-task{background:#ffffff94;border-color:#b2c9d8}
.job-overview .job-task-title{color:#35596d}
.job-overview .job-task-list small{color:#64747b}
.job-overview .job-created{color:#69745e}
.job-overview .job-form-fields textarea{min-height:84px}
.job-overview .job-form-fields select,.job-overview .job-form-fields input{max-width:100%;min-width:0}
@media(min-width:1491px){.main:has(.job-overview){padding-left:24px;padding-right:24px}.job-overview .job-panel .button-small{font-size:.69rem;padding-left:8px;padding-right:8px}.job-overview .job-form-fields input[type=datetime-local]{padding-left:5px;padding-right:2px;font-size:.71rem}}

@media(max-width:760px){.job-overview .job-panel{padding:18px}.job-overview .job-panel-heading h2{font-size:.99rem}.job-overview .job-contact-group-title{font-size:.78rem!important}.job-overview .job-date-choice{flex-wrap:nowrap}.job-overview .job-form-fields textarea{min-height:100px}.job-overview .job-scope{font-size:.66rem}}
@media print{.job-overview .job-panel{print-color-adjust:exact;-webkit-print-color-adjust:exact}.job-overview .job-development-add{display:none}}
/* Keep the initial job view compact: the chosen date precedes expandable alternatives. */
.job-overview #job-appointments .job-editor{margin-top:10px;padding-top:8px}
.job-overview #job-appointments .job-editor[open]{padding-top:11px}
.job-overview #job-appointments .job-date-hero{margin-bottom:12px}
.job-overview #job-appointments .job-facts-pairs{gap:9px 12px}
.job-overview #job-appointments .job-facts dt{margin-bottom:2px}
.job-overview #job-appointments .job-appointment-actions{margin:0;padding:0;border:0}
.job-overview .job-option-deadline{font-size:.7rem;margin-bottom:12px}
.job-overview .job-date-note .job-prose{padding-top:4px}
@media(min-width:761px){.main:has(.job-overview){padding-top:25px}.job-overview .job-topline{margin-bottom:13px}.job-overview .job-header{margin-bottom:16px;gap:18px}.job-overview .job-number{min-height:64px;min-width:100px;padding:8px 14px}.job-overview .job-number strong{font-size:1.7rem}.job-overview .job-number small{font-size:.57rem}.job-overview .job-heading{gap:16px}.job-overview .job-heading h1{font-size:clamp(1.4rem,2vw,1.85rem);margin:6px 0 0;letter-spacing:-.5px}.job-overview .job-heading-meta{font-size:.78rem}.job-overview .job-jumpnav{margin-bottom:16px}.job-overview .job-jumpnav a{padding-bottom:10px}}
/* Compact communication log and local rich-text editor. */
.job-overview #job-development{padding:10px 12px}
#job-development .job-panel-heading{margin-bottom:5px}
#job-development .job-development-add{margin-bottom:5px;font-size:.73rem}
#job-development .job-timeline>li{padding:4px 0;margin:0;border-top:1px solid #53685a26;background:none;border-radius:0;box-shadow:none}
#job-development .job-timeline>li:last-child{padding-bottom:0}
.job-entry-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 7px;margin:0 0 2px;font-size:.68rem;line-height:1.3;color:#635d43;font-variant-numeric:tabular-nums}
.job-entry-meta strong{font-size:inherit;color:#354138}
.job-entry-scope{margin-left:auto;font-size:.64rem}
#job-development .job-prose{font-size:.8rem;line-height:1.35;color:#24343a}
#job-development .job-prose p,#job-development .job-prose div{margin:0}
#job-development .job-prose p+p{margin-top:3px}
.job-entry-subject+p,.job-entry-subject+div{display:inline}
.job-entry-contact{display:block;margin-top:2px;font-size:.65rem;line-height:1.25;color:#635d43}
.rich-text{width:100%;border:1px solid #abb8ae;border-radius:6px;background:#fff;overflow:hidden}
.rich-text:focus-within{outline:2px solid #17665e;outline-offset:2px}
.rich-text-toolbar{display:flex;flex-wrap:wrap;gap:3px;padding:4px;border-bottom:1px solid #d9dfdb;background:#f6f7f3}
.rich-text-toolbar button{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:30px;padding:3px 6px;border:1px solid transparent;border-radius:3px;background:transparent;color:#24343a;font-size:.8rem;line-height:1.1;cursor:pointer}
.rich-text-toolbar button:hover,.rich-text-toolbar button:focus-visible,.rich-text-toolbar button[aria-pressed=true]{background:#e2eae4;border-color:#809888}
.rich-text-toolbar .rich-text-bold{font-weight:800}
.rich-text-toolbar .rich-text-color{color:var(--text-color);font-weight:750;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:3px}
.rich-text-input{min-height:110px;max-height:360px;overflow-y:auto;padding:8px;font-size:.85rem;line-height:1.4;color:#24343a;white-space:pre-wrap;overflow-wrap:anywhere;outline:none}
.rich-text-input div,.rich-text-input p{margin:0}
.rich-text .field-errors{padding:0 8px 5px;margin:0}
@media(max-width:760px){.job-overview #job-development{padding:10px 12px}.rich-text-toolbar button{min-width:32px;min-height:36px}.rich-text-input{font-size:16px}#job-development .job-prose{font-size:.86rem}.job-entry-meta{font-size:.72rem}}

.rich-color-default{color:#24343a}.rich-color-red{color:#b42318}.rich-color-blue{color:#175cd3}.rich-color-green{color:#16703c}.rich-color-purple{color:#7a3eb1}.rich-color-brown{color:#995700}

/* Shared selection toolbar; the original controls remain reachable by keyboard. */
.rich-text-toolbar select{width:auto;max-width:125px;min-height:32px;padding:3px 5px;font-size:.8rem;background:#fff;border:1px solid #abb8ae;border-radius:4px}
.rich-text-toolbar .rich-text-italic{font-style:italic}
.rich-text-toolbar .rich-text-underline{text-decoration:underline}
.rich-text-floating{position:fixed;z-index:1000;width:350px;max-width:calc(100vw - 16px);border:1px solid #809888;border-radius:7px;box-shadow:0 4px 18px #24343a33;padding:6px}
.rich-font-arial{font-family:Arial,sans-serif}.rich-font-georgia{font-family:Georgia,serif}.rich-font-verdana{font-family:Verdana,sans-serif}
.rich-size-small{font-size:small}.rich-size-normal{font-size:medium}.rich-size-large{font-size:large}.rich-size-heading{font-size:x-large}
.rich-text-input[aria-invalid=true]{box-shadow:inset 0 0 0 2px #b42318}
@media(max-width:760px){.rich-text-toolbar select{min-height:36px;font-size:16px;max-width:138px}.rich-text-toolbar button{min-width:36px}}

/* Finance retains the familiar Access fields and invoice/payment actions. */
.job-calculation-preview { margin: .6rem 0; padding: .6rem; background: #fff; color: #174e76; font-weight: 600; }
.job-finance-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.invoice-paper { max-width: 850px; padding: 2rem; background: white; color: #172736; }
.invoice-paper table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
.invoice-paper td, .invoice-paper th { padding: .65rem; border-bottom: 1px solid #ccd7df; text-align: left; }
.invoice-paper td:last-child { text-align: right; white-space: nowrap; }
.invoice-draft-warning { font-weight: 700; color: #854300; }
@media print { .sidebar, .invoice-controls, .messages { display: none !important; } .main { margin: 0 !important; padding: 0 !important; } .invoice-paper { max-width: none; } }
@media (max-width: 500px) { .invoice-paper { padding: .75rem; } }

/* Development entries: native disclosure and an editor in the visible panel. */
#job-development .job-entry-details{container-type:normal;min-width:0}
#job-development .job-entry-title{font-weight:700;font-size:.85rem;line-height:1.25;overflow-wrap:anywhere;cursor:pointer}
#job-development .job-entry-details[open]>.job-prose{margin-top:7px}
#job-development .job-entry-title:focus-visible{outline:2px solid #17665e;outline-offset:3px}
#job-development .job-development-add{margin:3px 0 5px;padding-top:4px}
#job-development .job-development-add .job-form-fields{grid-template-columns:minmax(0,1fr)}

/* Entry editor: always visible bold/color controls and inline contact metadata. */
.job-entry-contact-inline{min-width:0;overflow-wrap:anywhere}
.job-entry-heading-rich{font-weight:400}
.rich-text-heading .rich-text-input{min-height:54px}
.rich-text-entry .rich-text-toolbar{position:static;gap:4px}
.rich-text-entry .rich-text-toolbar button{font-size:.75rem;min-height:32px}
.rich-text-entry .rich-text-color{font-weight:600}
@media(max-width:760px){.rich-text-entry .rich-text-toolbar button{min-height:36px}}

#job-development .job-entry-meta{margin-bottom:0}
#job-development .job-entry-details[open]>.job-prose{margin-top:4px}
#job-development .job-development-add>summary{min-height:24px}

/* Private appointments use a stronger violet with dark, readable text. */
.event-private,.event-private h4 a,.event-private .event-time,.event-private .event-location,.event-private .event-person{color:#2f1843}

/* Categories preserve the general private palette and carry visible labels. */
.event-private.private-category-important{background:#b42332;border-color:#851b26;--private-ink:#fff}
.event-private.private-category-jobs_first{background:#ed9418;border-color:#a86008;--private-ink:#382000}
.event-private.private-category-holiday{background:#173f73;border-color:#102e55;--private-ink:#fff}
.event-private[class*="private-category-"]{color:var(--private-ink,#2f1843)}
.event-private[class*="private-category-"] :is(h4 a,.event-time,.event-location,.event-person,.event-category){color:var(--private-ink,#2f1843)}
.event-category{font-size:.75rem;font-weight:800;margin:0 0 5px;line-height:1.35;overflow-wrap:anywhere}

/* Briefing cards share the overview palette and keep the meeting link above the card link. */
.event-card.event-primary.status-briefing{background:#deefff;border-color:#b5d4f0;border-left-color:#5593be}
.event-card.event-colleague.status-briefing{background:#eef0f2;border-color:#d0d5da;border-left-color:#8a939c}
.event-card.event-unassigned.status-briefing{background:#f1f7ef}
.event-card a[data-briefing-access]{position:relative;z-index:1;color:#fff;font-weight:700}

.job-contract-documents .job-contract-pdf{display:block;color:#287443;overflow-wrap:anywhere}
.job-contract-documents .job-contract-technical{margin-top:5px;font-size:.76rem}
.job-contract-documents .job-contract-edit{display:inline-block;margin-top:7px;font-size:.65rem;font-weight:400;color:#6b7280}


/* A separate return rail stays reachable while the form scrolls. */
.form-back-layout{display:grid;grid-template-columns:88px minmax(0,1fr);gap:20px;align-items:stretch}
.form-back-content{min-width:0}
.form-back-rail .back-link{position:sticky;top:18px;display:flex;width:100%;min-height:44px;margin:0;padding:10px 7px;background:var(--paper);font-size:.8rem;white-space:nowrap}
@media(max-width:760px){.form-back-layout{grid-template-columns:68px minmax(0,1fr);gap:10px}.form-back-rail .back-link{top:12px;padding:9px 3px;font-size:.72rem}.form-back-content .form-panel{padding:16px 12px}}
@media print{.form-back-layout{display:block}.form-back-rail{display:none}}

/* Confirmed NAS PDF metadata in the job overview. */
.jo-pdf-status{display:inline-flex;gap:.3em;align-items:center;font-size:11px;white-space:nowrap}.jo-pdf-light{font-size:16px}.jo-pdf-ok .jo-pdf-light{color:#13723d}.jo-pdf-error .jo-pdf-light{color:#ba2020}.jo-col-pdf{width:44px}.jo-mobile-job>.jo-pdf-status{margin-top:4px}
