@font-face{font-family:Basis Display;src:url(/fonts/basis-display.woff2)format("woff2");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Basis Display;src:url(/fonts/basis-display-italic.woff2)format("woff2");font-weight:300 700;font-style:italic;font-display:swap}@font-face{font-family:Basis SC;src:url(/fonts/basis-sc-300.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Basis SC;src:url(/fonts/basis-sc-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Basis SC;src:url(/fonts/basis-sc-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Basis Script;src:url(/fonts/basis-script.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--bg:#f8f9fa;--surface:#fff;--text:#1f2937;--text-muted:#6b7280;--border:#e5e7eb;--primary:#4f46e5;--primary-hover:#4338ca;--danger:#ef4444;--danger-hover:#dc2626;font:14px/1.5 var(--sans);color:var(--text);background:var(--bg)}*,:before,:after{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100vh;display:flex}.app-nav{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:16px;padding:8px 16px;display:flex;position:sticky;top:0}.nav-canvas-logo{width:auto;height:22px;position:absolute;left:50%;transform:translate(-50%)}.nav-brand{color:var(--primary);margin-right:8px;font-size:16px;font-weight:700}.nav-links{gap:4px;display:flex}.nav-link{color:var(--text-muted);border-radius:6px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{color:var(--text);background:#f3f4f6}.nav-link.active{background:var(--primary);color:#fff}.nav-actions{gap:6px;margin-left:auto;display:flex}.nav-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-muted);border-radius:6px;padding:5px 12px;font-size:12px;font-weight:500}.nav-btn:hover{color:var(--text);background:#f3f4f6}.nav-btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.nav-btn--primary:hover{background:var(--primary-hover);color:#fff}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1;overflow:hidden}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .15s}.btn:hover{background:#f3f4f6}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:3px 8px;font-size:12px}.grid-page{flex-direction:column;height:calc(100vh - 49px);display:flex}.grid-toolbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.toolbar-actions{align-items:center;gap:12px;display:flex}.zoom-control{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.zoom-control input[type=range]{width:80px}.grid-container{flex:1;padding:0;overflow:auto}.time-grid{min-width:fit-content;display:flex}.time-column-wrapper{z-index:10;background:var(--bg);flex-shrink:0;width:80px;position:sticky;left:0}.time-column{position:relative}.time-label{color:var(--text-muted);text-align:right;opacity:.4;justify-content:flex-end;align-items:flex-start;padding-right:6px;font-size:9px;line-height:1;display:flex}.time-label-hour{color:var(--text);opacity:1;font-size:10px;font-weight:700}.time-label-15{opacity:.7;font-weight:500}.time-label-5{opacity:.35;font-size:8px}.day-column-wrapper{border-left:1px solid var(--border);flex:1;min-width:220px}.day-column-header{text-align:center;background:var(--surface);border-bottom:1px solid var(--border);z-index:5;color:var(--text-muted);padding:6px 12px;font-size:12px;font-weight:600;position:sticky;top:0}.day-column{position:relative}.grid-legend{align-items:center;gap:14px;display:flex}.grid-legend-item{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;font-weight:500;display:flex}.grid-legend-swatch{border-left:3px solid;border-radius:2px;flex-shrink:0;width:12px;height:12px;display:inline-block}.day-select{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:5px 8px;font-size:13px;font-weight:500}.grid-line{pointer-events:none;z-index:0;height:0;position:absolute;left:0;right:0}.grid-line-5{border-top:1px solid #f3f4f6}.grid-line-15{border-top:1px solid #e5e7eb}.grid-line-hour{border-top:1px solid #d1d5db}.tooltip-venue{color:#fff9;font-size:11px}.slot-content{cursor:grab;-webkit-user-select:none;user-select:none;border-radius:3px;height:100%;padding:1px 5px;font-size:10px;line-height:1.2;position:relative;overflow:hidden}.slot-label{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.slot-tooltip{z-index:200;color:#f9fafb;pointer-events:none;white-space:normal;background:#1f2937;border-radius:6px;min-width:220px;max-width:300px;padding:8px 10px;font-size:12px;line-height:1.4;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #00000040}.tooltip-row{margin-bottom:2px}.tooltip-type{text-transform:capitalize;opacity:.7;font-size:11px}.tooltip-people{border-top:1px solid #ffffff26;margin-top:4px;padding-top:4px}.tooltip-person{padding:1px 0}.tooltip-role{opacity:.6;font-size:10px;font-style:italic}.tooltip-notes{opacity:.7;border-top:1px solid #ffffff26;margin-top:4px;padding-top:4px;font-size:11px;font-style:italic}.resize-handle{cursor:ns-resize;z-index:3;justify-content:center;align-items:center;height:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.resize-handle-bar{opacity:0;border-top:1px solid #0000004d;border-bottom:1px solid #0000004d;border-radius:1px;width:24px;height:3px;transition:opacity .15s}.resize-handle:hover .resize-handle-bar{opacity:1}.resize-preview{z-index:50;pointer-events:none;background:#11182714;border:2px solid #111827;border-radius:3px;position:absolute;top:0;left:0;right:0}.resize-preview-label{color:#fff;white-space:nowrap;background:#111827;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.conflict-banner{background:var(--danger);color:#fff;z-index:100;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:500;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.slot-editor-overlay{z-index:200;background:#0000004d;justify-content:flex-end;display:flex;position:fixed;inset:0}.slot-editor{background:var(--surface);width:380px;height:100%;padding:20px;overflow-y:auto;box-shadow:-4px 0 20px #0000001a}.editor-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.editor-header h3{margin:0}.editor-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 4px;font-size:24px}.editor-info{color:var(--text-muted);background:#f9fafb;border-radius:6px;margin-bottom:16px;padding:8px;font-size:13px}.editor-field{margin-bottom:12px}.editor-field label{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.editor-field input,.editor-field select,.editor-field textarea{border:1px solid var(--border);width:100%;font-size:13px;font-family:var(--sans);border-radius:6px;padding:6px 10px}.editor-row{gap:16px;margin-bottom:12px;font-size:13px;display:flex}.editor-row label{cursor:pointer;align-items:center;gap:6px;display:flex}.editor-hint{color:var(--text-muted);margin:0 0 6px;font-size:11px}.editor-actions{border-top:1px solid var(--border);gap:8px;margin-top:20px;padding-top:16px;display:flex}.assignment-list{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;padding:6px}.assignment-row{align-items:center;gap:6px;padding:4px 0;font-size:13px;display:flex}.assignment-row+.assignment-row{border-top:1px solid #f3f4f6}.assignment-name{flex-shrink:0;font-weight:500}.assignment-co{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;overflow:hidden}.assignment-role-select{border:1px solid var(--border);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:12px}.assignment-add{margin-top:4px}.assignment-add select{border:1px solid var(--border);width:100%;color:var(--text-muted);border-radius:6px;padding:5px 8px;font-size:13px}.schedule-page{max-width:1000px;margin:0 auto;padding:24px}.schedule-print-header{margin-bottom:24px}.schedule-print-header h1{margin:0 0 4px;font-size:28px}.schedule-print-header p{color:var(--text-muted);font-size:13px}.schedule-day{margin-bottom:32px}.schedule-day-title{border-bottom:2px solid var(--primary);margin:0 0 16px;padding-bottom:8px;font-size:20px}.schedule-venue{margin-bottom:20px}.schedule-venue-title{color:var(--text-muted);margin:0 0 8px;font-size:15px}.schedule-table{border-collapse:collapse;width:100%;font-size:13px}.schedule-table th{text-align:left;border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 8px;font-size:11px}.schedule-table td{vertical-align:top;border-bottom:1px solid #f3f4f6;padding:6px 8px}.schedule-time{white-space:nowrap;font-variant-numeric:tabular-nums}.schedule-duration{white-space:nowrap;color:var(--text-muted)}.schedule-company{color:var(--text-muted)}.schedule-title{font-weight:500}.schedule-type{text-transform:capitalize;color:var(--text-muted);font-size:12px}.schedule-speakers{color:var(--text-muted)}.schedule-notes{color:var(--text-muted);font-size:12px;font-style:italic}.type-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.tbd-badge,.sponsored-badge{border-radius:3px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.tbd-badge{color:#92400e;background:#fef3c7}.sponsored-badge{color:#1e40af;background:#dbeafe}.print-actions{text-align:center;margin-top:24px}.people-page{max-width:1400px;margin:0 auto;padding:24px}.people-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.people-toolbar h2{margin:0;font-size:20px}.people-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:13px}.people-filters{align-items:center;gap:8px;display:flex}.search-input{border:1px solid var(--border);border-radius:6px;width:200px;padding:6px 10px;font-size:13px}.people-table{border-collapse:collapse;width:100%;font-size:13px}.people-table th{text-align:left;border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);white-space:nowrap;padding:8px 6px;font-size:10px}.people-table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:6px;font-size:12px}.person-name{font-weight:500}.support-cell{color:var(--text-muted);font-size:11px}.notes-cell{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:11px;font-style:italic;overflow:hidden}.sessions-cell{font-size:12px}.sessions-cell .assigned-slots-list li{padding:3px 0}.session-title-inline{font-weight:500}.session-detail-inline{color:var(--text-muted);font-size:10px}.actions-cell{white-space:nowrap}.actions-cell .btn{margin-right:4px}.assigned-slots-list{color:var(--text-muted);margin:0;padding:0;font-size:12px;list-style:none}.assigned-slots-list li{padding:1px 0}.leader-badge{color:#5b21b6;background:#ede9fe;border-radius:3px;margin-left:4px;padding:0 4px;font-size:10px;font-weight:600;display:inline-block}.text-muted{color:var(--text-muted)}.empty-state{text-align:center;color:var(--text-muted);font-style:italic;padding:32px!important}.person-form{border:1px solid var(--border);background:#f9fafb;border-radius:8px;margin-bottom:16px;padding:14px}.person-form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.pf-field label{color:var(--text-muted);margin-bottom:3px;font-size:11px;font-weight:600;display:block}.pf-field input,.pf-field select{border:1px solid var(--border);width:100%;font-size:13px;font-family:var(--sans);border-radius:5px;padding:5px 8px}.pf-field-wide{grid-column:1/-1}.pf-divider{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-top:1px solid var(--border);grid-column:1/-1;padding-top:6px;font-size:11px;font-weight:700}.pf-actions{gap:8px;margin-top:12px;display:flex}@media print{.app-nav,.no-print,.conflict-banner{display:none!important}.schedule-page{max-width:none;padding:0}.schedule-day{page-break-inside:avoid;break-inside:avoid}.schedule-day+.schedule-day{page-break-before:always}body{background:#fff}.schedule-table{font-size:11px}}
