.contracts-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.contract-metric{width:100%;text-align:left;color:var(--text);cursor:pointer}.contract-metric.active{border-color:var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 18%,transparent)}.contract-metric .value{font-size:28px;font-weight:900;margin-top:6px}.contract-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.contract-toolbar .field{min-width:min(320px,100%)}.contract-list{display:grid;gap:9px}.contract-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(140px,.8fr) minmax(130px,.7fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.contract-row strong,.contract-row span{min-width:0}.contract-row .actions{justify-content:flex-end}.contract-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:850}.contract-status.draft{background:var(--panel);color:var(--muted)}.contract-status.pending{background:#4a3210;color:#ffd486}.contract-status.signed{background:#153d25;color:#77eca6}.contract-status.bad{background:#432323;color:#ffabab}.contract-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contract-config-grid .full{grid-column:1/-1}.contract-missing{border-color:var(--yellow)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--yellow) 18%,transparent)}.contract-reminders{display:flex;gap:8px;flex-wrap:wrap}.contract-reminders label{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);cursor:pointer}.contract-reminders input{width:16px;height:16px}.contract-disclaimer{padding:10px 12px;border-left:3px solid var(--yellow);background:var(--panel2);color:var(--muted);font-size:12px;line-height:1.45}.contract-editor{position:fixed;inset:0;z-index:70;display:none;background:var(--bg);overflow:auto}.contract-editor.show{display:block}.contract-editor-shell{width:min(1120px,100%);min-height:100vh;margin:auto;padding:22px}.contract-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.contract-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);gap:14px}.contract-editor textarea{min-height:62vh;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.55}.contract-insert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:10px}.contract-insert-grid button{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);text-align:left;cursor:pointer}.contract-preview{min-height:62vh;max-height:72vh;overflow:auto;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:14px;line-height:1.65}.contract-document h1{text-align:center;font-size:22px}.contract-document h2{font-size:17px;margin-top:22px}.contract-document p{color:var(--text)}.contract-document ul{padding-left:22px}.contract-variable{display:inline-block;padding:1px 6px;border-radius:6px;background:#fff1b8;color:#5f4900;font-size:.9em}.contract-warnings{display:grid;gap:7px;margin-bottom:10px}.contract-warning{padding:9px 11px;border-radius:9px;background:#4a3210;color:#ffd486;font-size:12px}.contract-blocking{padding:9px 11px;border-radius:9px;background:#432323;color:#ffabab;font-size:12px}.contract-detail-modal .modal-card{width:min(850px,100%);max-height:90vh;overflow:auto}.contract-timeline{display:grid;gap:0;margin:14px 0}.contract-event{position:relative;border-left:2px solid var(--line);padding:0 0 16px 16px}.contract-event::before{content:'';position:absolute;left:-5px;top:3px;width:8px;height:8px;border-radius:50%;background:var(--green)}.contract-hashes{display:grid;gap:8px}.contract-hash{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:9px}.contract-hash code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-contract-card{margin:0 0 16px;padding:14px}.self-reported{display:inline-block;margin-left:6px;padding:3px 6px;border-radius:999px;background:#fff1b8;color:#5f4900;font-size:10px;font-weight:850}.notification-wrap{position:relative}.notification-button{position:relative;width:42px;height:42px;padding:0}.notification-count{position:absolute;right:-4px;top:-5px;min-width:19px;height:19px;display:grid;place-items:center;padding:0 4px;border-radius:999px;background:var(--red);color:#fff;font-size:10px}.notification-panel{position:absolute;right:0;top:49px;z-index:45;width:min(390px,calc(100vw - 30px));max-height:70vh;overflow:auto;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px #0006}.notification-item{width:100%;display:block;padding:11px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer}.notification-item:hover{background:var(--panel2)}.notification-item strong{display:block}.notification-item small{display:block;margin-top:4px;color:var(--muted)}.contract-queue{position:fixed;inset:0;z-index:75;display:none;place-items:center;padding:20px;background:#000b}.contract-queue.show{display:grid}.contract-queue-card{width:min(520px,100%);padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--panel);text-align:center}.queue-progress{height:8px;margin:14px 0;border-radius:999px;background:var(--panel2);overflow:hidden}.queue-progress span{display:block;height:100%;background:var(--green)}
.contracts-public-mode #login,.contracts-public-mode #app{display:none!important}.contract-public-page{display:none;min-height:100vh;background:#f3f6f4;color:#15231b;padding:18px}.contracts-public-mode .contract-public-page{display:block}.contract-public-shell{width:min(760px,100%);margin:auto}.contract-public-brand{text-align:center;font-size:20px;font-weight:900;margin:10px 0 20px}.contract-public-card{background:#fff;border:1px solid #c8d4cd;border-radius:16px;padding:clamp(18px,4vw,30px);box-shadow:0 12px 35px #15351f14}.contract-public-card h1{font-size:24px;line-height:1.25}.contract-public-card h2{font-size:19px}.contract-public-card p{color:#52645a;font-size:16px}.contract-public-card label{font-size:14px;color:#33483b}.contract-public-card input,.contract-public-card textarea,.contract-public-card select{background:#fff;color:#15231b;border-color:#aebdb4;font-size:16px}.contract-public-card .btn{font-size:16px}.public-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0;padding:16px;border-radius:12px;background:#eef5f0}.public-fields .full{grid-column:1/-1}.public-contract{margin:18px 0;padding:18px;border:1px solid #d7e1da;border-radius:12px;line-height:1.7}.public-contract p{color:#15231b}.drawn-signature{margin:14px 0;padding:14px;border:1px solid #c8d4cd;border-radius:12px}.drawn-signature.has-error{border-color:#c53131;box-shadow:0 0 0 2px #c5313126}.drawn-signature h3{margin:0 0 4px;font-size:16px}.drawn-signature .signature-help{margin:0 0 10px;font-size:14px}.signature-canvas{width:100%;height:200px;display:block;border:1px dashed #819487;border-radius:10px;touch-action:none;background:#fff}.public-check{display:flex;align-items:flex-start;gap:9px;margin:12px 0;color:#33483b;font-size:15px}.public-check input{width:19px;height:19px;flex:0 0 19px;margin-top:2px}.public-error{padding:10px;border-radius:9px;background:#fee4e2;color:#912018}.public-success{text-align:center;padding:24px}.public-refuse{margin-top:22px;padding-top:16px;border-top:1px solid #d7e1da}.public-link{border:0;background:transparent;color:#087a3e;text-decoration:underline;cursor:pointer;font-size:14px}
.contracts-public-mode .contract-public-page{color-scheme:light}.contracts-public-mode .contract-public-card input:not([type="checkbox"]):not([type="radio"]),.contracts-public-mode .contract-public-card textarea,.contracts-public-mode .contract-public-card select{background-color:#fff!important;color:#15231b!important;-webkit-text-fill-color:#15231b!important;border-color:#819487!important;caret-color:#087a3e;color-scheme:light;opacity:1}.contracts-public-mode .contract-public-card input:not([type="checkbox"]):not([type="radio"]):-webkit-autofill,.contracts-public-mode .contract-public-card input:not([type="checkbox"]):not([type="radio"]):-webkit-autofill:hover,.contracts-public-mode .contract-public-card input:not([type="checkbox"]):not([type="radio"]):-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #fff inset!important;-webkit-text-fill-color:#15231b!important}
.contract-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:20px;margin-bottom:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 10%,var(--panel)),var(--panel))}.contract-hero h2{margin:3px 0 5px;font-size:25px}.contract-hero p{margin:0;color:var(--muted);font-size:15px}.contract-hero .actions{justify-content:flex-end}.contract-dashboard-loading{display:grid;gap:14px}.contract-skeleton{position:relative;overflow:hidden;min-height:104px;background:var(--panel2)}.contract-skeleton::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 8%,transparent),transparent);animation:contractShimmer 1.25s infinite}.list-skeleton{min-height:260px}@keyframes contractShimmer{to{transform:translateX(100%)}}.contract-error-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:14px;border:1px solid color-mix(in srgb,var(--red) 55%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--red) 10%,var(--panel))}.contract-error-panel div{display:grid;gap:3px}.contract-error-panel span{color:var(--muted)}.contract-metric small{display:block;margin-top:4px;color:var(--muted);font-size:12px}.contract-recommendations{margin-bottom:14px;padding:16px}.contract-recommendation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.contract-recommendation>div{display:grid;gap:3px}.contract-recommendation span,.contract-all-good span{color:var(--muted);font-size:13px}.contract-all-good{display:grid;gap:3px;padding:13px;border-radius:11px;background:color-mix(in srgb,var(--green) 10%,var(--panel2))}.contract-list-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 0 12px}.contract-list-head h3{margin:0 0 3px}.contract-filters{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.contract-filters .field{min-width:145px}.contract-filters .field:first-child{min-width:230px}.contract-filter-chips{display:flex;gap:7px;overflow-x:auto;padding:1px 0 10px}.contract-filter-chip{flex:0 0 auto;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);color:var(--muted);cursor:pointer;font-weight:750}.contract-filter-chip.active{border-color:var(--green);background:color-mix(in srgb,var(--green) 14%,var(--panel2));color:var(--text)}.contract-table-head{display:grid;grid-template-columns:minmax(180px,1.05fr) minmax(125px,.7fr) minmax(110px,.55fr) minmax(175px,.85fr) minmax(250px,1.2fr);gap:12px;padding:0 13px 8px;color:var(--muted);font-size:12px;font-weight:800}.contract-row{grid-template-columns:minmax(180px,1.05fr) minmax(125px,.7fr) minmax(110px,.55fr) minmax(175px,.85fr) minmax(250px,1.2fr)}.contract-row>div:nth-child(4){display:grid;gap:3px}.contract-onboarding{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,.9fr);gap:22px;padding:22px;margin-bottom:14px}.contract-onboarding-copy h3{margin:5px 0 8px;font-size:22px}.contract-onboarding-copy p{color:var(--muted);line-height:1.55}.contract-onboarding>.actions{grid-column:1/-1}.contract-steps{display:grid;gap:9px}.contract-step{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.contract-step b{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--panel);color:var(--muted)}.contract-step.done b{background:var(--green);color:#fff}.contract-activity-card{margin-top:16px;padding:16px}.contract-activity-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.contract-activity-dot{width:9px;height:9px;flex:0 0 9px;margin-top:5px;border-radius:50%;background:var(--green)}.contract-new-modal{width:min(680px,100%)}.contract-new-summary{margin:14px 0}.contract-new-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:10px}.contract-new-grid>div{display:grid;gap:4px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.contract-new-grid span{color:var(--muted);font-size:12px}.contract-ready-box{display:grid;gap:5px;padding:15px;margin-bottom:12px;border-radius:12px;background:color-mix(in srgb,var(--green) 12%,var(--panel2))}.contract-ready-box span{color:var(--muted)}.contract-template-management{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.contract-template-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.contract-provider-card,.contract-plans-card{margin-bottom:14px;padding:18px}.contract-provider-card.needs-attention{border-color:var(--yellow);box-shadow:0 0 0 1px color-mix(in srgb,var(--yellow) 30%,transparent)}.contract-provider-collapsed{display:flex;align-items:center;justify-content:space-between;gap:12px}.contract-provider-collapsed>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.contract-provider-collapsed span{color:var(--muted)}.contract-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.contract-provider-grid .full{grid-column:1/-1}.contract-provider-grid .field small{display:block;margin-top:5px;color:var(--muted);line-height:1.35}.contract-person-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:3px;border:1px solid var(--line);border-radius:11px}.contract-type-button{min-height:44px;padding:9px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800}.contract-type-button.active{background:color-mix(in srgb,var(--green) 16%,var(--panel2));color:var(--text)}.contract-type-button:disabled{cursor:default}.contract-field-error{min-height:16px;margin-top:4px;color:var(--red);font-size:12px}.contract-provider-readonly{margin:14px 0;padding:11px;border-radius:10px;background:var(--panel2);color:var(--muted)}.contract-choice-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.contract-choice-setting>div{display:grid;gap:4px}.contract-choice-setting span{color:var(--muted);font-size:13px}.contract-choice-setting .contract-plan-warning{color:var(--yellow)}.contract-provider-save{margin-top:14px}.contract-plan-list{display:grid;gap:8px}.contract-plan-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.contract-plan-row>div:first-child{display:grid;gap:4px}.contract-plan-row>div:first-child span{color:var(--muted);font-size:13px}.contract-plan-status{padding:5px 9px;border-radius:999px;background:var(--panel);color:var(--muted);font-size:12px;font-weight:800}.contract-plan-status.active{background:color-mix(in srgb,var(--green) 18%,var(--panel));color:var(--green)}.contract-plan-empty .btn{margin-top:12px}.contract-plan-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,.5fr) minmax(150px,.65fr);gap:12px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.contract-plan-form>.actions,.contract-plan-form>.contract-field-error,.contract-plan-edit-warning{grid-column:1/-1}.contract-plan-edit-warning{padding:9px;border-left:3px solid var(--yellow);color:var(--muted);font-size:13px}.contract-plan-preview{display:grid;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.contract-plan-preview>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.contract-plan-choice-preview{display:flex;align-items:center;gap:10px;min-height:54px;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.contract-plan-choice-preview input{width:18px;height:18px}.contract-plan-choice-preview span{display:grid;gap:3px}.contract-plan-choice-preview small{color:var(--muted)}
.public-plan-section{min-width:0;margin:20px 0;padding:16px;border:1px solid #b9c8bf;border-radius:14px}.public-plan-section legend{padding:0 7px;color:#15231b;font-size:19px;font-weight:800}.public-plan-section.has-error{border-color:#c53131;box-shadow:0 0 0 2px #c5313126}.public-plan-options{display:grid;gap:9px}.public-plan-option{display:flex;align-items:center;gap:12px;min-height:58px;padding:12px;border:1px solid #b9c8bf;border-radius:11px;background:#f8fbf9;cursor:pointer}.public-plan-option:has(input:checked){border-color:#087a3e;box-shadow:0 0 0 2px #087a3e24;background:#eef8f2}.public-plan-option input{width:20px;height:20px;flex:0 0 20px}.public-plan-option span{display:grid;gap:3px;min-width:0}.public-plan-option strong{font-size:16px}.public-plan-option small,.public-plan-helper{color:#52645a;font-size:13px}.public-plan-helper{display:block;margin-top:10px}.public-plan-section .public-error{margin-top:10px}.public-signed-plan{padding:12px;border-radius:10px;background:#eef8f2;color:#15231b!important}
@media(max-width:900px){.contracts-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-editor-grid{grid-template-columns:1fr}.contract-editor textarea,.contract-preview{min-height:45vh}.contract-table-head{display:none}.contract-row{grid-template-columns:1fr 1fr}.contract-row .actions{grid-column:1/-1;justify-content:flex-start}.contract-list-head{align-items:stretch;flex-direction:column}.contract-filters .field{flex:1}.contract-onboarding{grid-template-columns:1fr}.contract-onboarding>.actions{grid-column:auto}.contract-plan-form{grid-template-columns:1fr 1fr}.contract-plan-form>.field:first-child{grid-column:1/-1}}
@media(max-width:640px){.contracts-summary,.contract-config-grid,.public-fields,.contract-new-grid,.contract-provider-grid,.contract-plan-form,.contract-plan-preview>div{grid-template-columns:1fr}.contract-config-grid .full,.public-fields .full,.contract-provider-grid .full,.contract-plan-form>.field:first-child{grid-column:auto}.contract-hero{align-items:stretch;flex-direction:column;padding:16px}.contract-hero .actions{display:grid;grid-template-columns:1fr}.contract-hero .actions .btn{width:100%}.contract-recommendation{align-items:stretch;flex-direction:column}.contract-recommendation .btn{width:100%}.contract-filters{display:grid;grid-template-columns:1fr}.contract-filters .field,.contract-filters .field:first-child{min-width:0}.contract-onboarding{padding:16px}.contract-onboarding>.actions{display:grid;grid-template-columns:1fr}.contract-provider-card,.contract-plans-card{padding:15px}.contract-provider-collapsed,.contract-choice-setting{align-items:stretch;flex-direction:column}.contract-provider-collapsed .btn{width:100%}.contract-person-types{grid-template-columns:1fr}.contract-plan-row{grid-template-columns:1fr}.contract-plan-row .actions{justify-content:flex-start}.contract-plan-form>.actions,.contract-plan-form>.contract-field-error,.contract-plan-edit-warning{grid-column:auto}.contract-editor-shell{padding:12px}.contract-editor-head{align-items:flex-start;flex-direction:column}.contract-insert-grid{grid-template-columns:1fr}.contract-row{grid-template-columns:1fr}.contract-row>*{grid-column:1!important}.contract-row>[data-label]::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.contract-row .actions{display:grid;grid-template-columns:1fr 1fr}.contract-row .actions .btn{padding:10px 8px}.notification-panel{position:fixed;inset:70px 12px auto;width:auto}.contract-public-page{padding:10px}.contract-public-shell{min-width:0}.contract-public-card{min-width:0;padding:18px}.public-plan-section{padding:13px}.public-plan-option{min-height:60px}.signature-canvas{height:170px}}
.contract-template-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.contract-template-picker select{min-width:0}.contract-template-picker .btn{min-height:42px;white-space:nowrap}.contract-template-picker .btn:disabled{opacity:.6}.contract-preview-modal{z-index:80}.contract-preview-modal-card{width:min(850px,calc(100vw - 32px));max-height:90vh;overflow:auto}.contract-preview-modal-card .contract-preview{min-height:50vh;max-height:65vh;overflow:auto}
@media(max-width:640px){.contract-template-picker{grid-template-columns:1fr}.contract-template-picker .btn{width:100%}.contract-preview-modal-card{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.contract-preview-modal-card .contract-preview{max-height:none}}
.contract-whatsapp-card{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel2)}.contract-whatsapp-card .security-setting{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.contract-wa-status{margin:10px 0;color:var(--muted);font-size:13px}.contract-delivery{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:800}.contract-delivery.pending{background:#4a3b16;color:#ffd486}.contract-delivery.good{background:#183d28;color:#7ce2a0}.contract-delivery.read{background:#183b61;color:#8fc7ff}.contract-delivery.warn{background:#4a3b16;color:#ffd486}.contract-delivery.bad{background:#4a2323;color:#ffabab}
.notification-item.unread{background:var(--panel2)}.notification-enable{width:100%;margin:0 0 8px;padding:10px;border:1px solid var(--green);border-radius:9px;background:transparent;color:var(--green);font:inherit;font-weight:800;cursor:pointer}.notification-enable:hover{background:var(--panel2)}
.contract-notification-button{font-size:18px}
.notification-button{display:inline-grid;place-items:center;line-height:1;font-size:21px}.notification-button .notification-count{display:grid;line-height:1;font-size:10px}
