.pl{flex-direction:column;gap:18px;display:flex}.pl-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.pl-seg{background:var(--bg);border:1px solid var(--line);border-radius:999px;gap:4px;padding:3px;display:inline-flex}.pl-seg-btn{min-height:34px;color:var(--text-2);border-radius:999px;padding:0 16px;font-size:.84rem;transition:color .12s,background .12s}.pl-seg-btn:hover{color:var(--text)}.pl-seg-btn.on{background:var(--surface-2);color:var(--text)}.pl-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pl-search{background:var(--bg);border:1px solid var(--line-2);min-width:220px;min-height:38px;color:var(--text);border-radius:999px;padding:0 14px;font-size:.86rem}.pl-search:focus{border-color:var(--accent);outline:none}.pl-cat{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);min-height:38px;color:var(--text);padding:0 12px;font-size:.86rem}.pl-cat:focus{border-color:var(--accent);outline:none}.pl-new{color:#0c0d11;background:var(--accent);border:1px solid var(--accent);border-radius:999px;min-height:38px;padding:0 16px;font-size:.86rem;font-weight:600;transition:transform .12s,opacity .15s}.pl-new:hover{opacity:.92;transform:translateY(-1px)}.pl-editor{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);flex-direction:column;gap:10px;padding:18px;display:flex}.pl-editor-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.pl-editor-head strong{font-size:.98rem}.pl-x{border-radius:var(--r-sm);border:1px solid var(--line-2);width:30px;height:30px;color:var(--text-3);background:var(--bg);font-size:.82rem;transition:color .12s,border-color .12s}.pl-x:hover{color:var(--text);border-color:var(--text-3)}.pl-editor-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;display:grid}.pl-in{font:inherit;background:var(--bg);width:100%;min-height:44px;color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:9px 12px;font-size:.9rem;transition:border-color .15s}.pl-in:focus{border-color:var(--accent);outline:none}.pl-ta{font:inherit;background:var(--bg);width:100%;color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);resize:vertical;min-height:150px;padding:11px 12px;font-size:.9rem;line-height:1.55;transition:border-color .15s}.pl-ta:focus{border-color:var(--accent);outline:none}.pl-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.pl-card{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);flex-direction:column;gap:11px;padding:16px;display:flex}.pl-card[data-phase]{border-left:3px solid var(--accent)}.pl-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pl-card-top strong{overflow-wrap:anywhere;font-size:.98rem;line-height:1.3}.pl-badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border:1px solid var(--line-2);white-space:nowrap;border-radius:999px;flex:none;padding:3px 9px;font-size:.75rem}.pl-badge.official{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.pl-badge.mine{color:var(--p2);border-color:color-mix(in srgb, var(--p2) 40%, var(--line))}.pl-sum{color:var(--text-2);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.85rem;line-height:1.5;display:-webkit-box;overflow:hidden}.pl-meta{flex-wrap:wrap;gap:6px;display:flex}.pl-chip{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);border:1px solid var(--line-2);border-radius:999px;padding:3px 9px;font-size:.75rem}.pl-tag{font-family:var(--mono);color:var(--text-3);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:.75rem}.pl-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.pl-act{font-family:var(--mono);color:var(--text-2);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-1);cursor:pointer;padding:7px 11px;font-size:.75rem;transition:border-color .12s,color .12s}.pl-act:hover{border-color:var(--accent);color:var(--text)}.pl-act.primary{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 42%, var(--line));background:color-mix(in srgb, var(--accent) 9%, var(--bg-1))}.pl-act.primary:hover{background:color-mix(in srgb, var(--accent) 14%, var(--bg-1))}.pl-act.danger:hover{border-color:var(--p4);color:var(--p4)}.pl-act:disabled{opacity:.5;cursor:default}.pl-admin-bar{justify-content:flex-start;display:flex}.pl-admin-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.pl-admin-sum{color:var(--text-2);margin:0;font-size:.85rem;line-height:1.5}@media (max-width:560px){.pl-toolbar{flex-direction:column;align-items:stretch}.pl-seg{justify-content:space-between}.pl-tools{flex-direction:column;align-items:stretch}.pl-search,.pl-cat,.pl-new{justify-content:center;width:100%;min-width:0}.pl-grid,.pl-editor-row{grid-template-columns:1fr}.pl-act{text-align:center;flex:1;min-height:40px}}
.obs-view{gap:16px}.obs-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.obs-stats{color:var(--text-2);flex-wrap:wrap;gap:8px 16px;font-size:.84rem;display:flex}.obs-stats b{color:var(--text);font-variant-numeric:tabular-nums}.obs-stats .warn b{color:var(--p1)}.obs-search{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);min-width:200px;max-width:320px;color:var(--text);font:inherit;flex:1;padding:9px 12px;font-size:.9rem}.obs-search:focus{border-color:var(--accent);outline:none}.obs-search::placeholder{color:var(--text-3)}.obs-roster{flex-direction:column;gap:10px;display:flex}.obs-card{transition:border-color .15s}.obs-card.is-open{border-color:var(--line-2)}.obs-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.obs-id{color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.obs-caret{color:var(--text-3);flex-shrink:0;width:12px;font-size:.8rem}.obs-id-text{min-width:0}.obs-id-text strong{text-overflow:ellipsis;display:block;overflow:hidden}.obs-id-text small{color:var(--text-3);font-size:.76rem}.obs-metrics{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.obs-metric{color:var(--text-2);white-space:nowrap;font-size:.78rem}.obs-metric b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.obs-last{color:var(--text-3);font-family:var(--mono);font-size:.75rem}.obs-alerts{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.obs-badge{letter-spacing:.02em;border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:600}.obs-badge.p1{color:var(--p1);border-color:color-mix(in srgb, var(--p1) 45%, var(--line));background:color-mix(in srgb, var(--p1) 8%, transparent)}.obs-badge.p2{color:var(--p2);border-color:color-mix(in srgb, var(--p2) 45%, var(--line));background:color-mix(in srgb, var(--p2) 8%, transparent)}.obs-badge.p3{color:var(--p3);border-color:color-mix(in srgb, var(--p3) 45%, var(--line));background:color-mix(in srgb, var(--p3) 8%, transparent)}.obs-badge.p4{color:var(--p4);border-color:color-mix(in srgb, var(--p4) 45%, var(--line));background:color-mix(in srgb, var(--p4) 8%, transparent)}.obs-detail{border-top:1px solid var(--line);flex-direction:column;gap:14px;margin-top:14px;padding-top:14px;display:flex}.obs-ai{flex-direction:column;gap:8px;display:flex}.obs-ai-btn{align-self:flex-start}.obs-ai-err{color:var(--p4);font-size:.82rem}.obs-ai-text{background:color-mix(in srgb, var(--p3) 6%, var(--surface-2));border:1px solid color-mix(in srgb, var(--p3) 30%, var(--line));border-radius:var(--r-sm);color:var(--text);padding:10px 12px;font-size:.9rem;line-height:1.5}.obs-detail-grid{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}.obs-panel h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:8px;font-size:.78rem}.obs-timeline{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.obs-timeline li{align-items:baseline;gap:10px;font-size:.84rem;display:flex}.obs-when{color:var(--text-3);font-family:var(--mono);white-space:nowrap;flex-shrink:0;min-width:80px;font-size:.75rem}.obs-what{color:var(--text-2)}.obs-what em{color:var(--text-3);font-style:normal}.obs-classes{flex-wrap:wrap;gap:6px;display:flex}.obs-class{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-2);width:30px;height:30px;color:var(--text-3);font-variant-numeric:tabular-nums;cursor:default;justify-content:center;align-items:center;font-size:.8rem;display:inline-flex}.obs-class.is-mastered{color:var(--p2);border-color:color-mix(in srgb, var(--p2) 50%, var(--line));background:color-mix(in srgb, var(--p2) 12%, transparent)}.obs-class.is-reviewed,.obs-class.is-submitted{color:var(--p3);border-color:color-mix(in srgb, var(--p3) 45%, var(--line));background:color-mix(in srgb, var(--p3) 10%, transparent)}.obs-class.is-instructor_focus{color:var(--p1);border-color:color-mix(in srgb, var(--p1) 50%, var(--line));background:color-mix(in srgb, var(--p1) 12%, transparent)}.obs-class.is-attended,.obs-class.is-available{color:var(--text-2);border-color:var(--line-2)}@media (max-width:720px){.obs-detail-grid{grid-template-columns:1fr}.obs-row{align-items:flex-start}}
.lnk-toolbar{margin-bottom:18px}.lnk-search{background:var(--bg);border:1px solid var(--line-2);width:min(360px,100%);min-height:38px;color:var(--text);border-radius:999px;padding:0 14px;font-size:.86rem}.lnk-search:focus{border-color:var(--accent);outline:none}.lnk-group{margin-bottom:22px}.lnk-glabel{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:10px;font-size:.75rem;display:block}.lnk-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.lnk-card{border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:inherit;flex-direction:column;gap:7px;padding:14px 16px;text-decoration:none;transition:border-color .15s,transform .12s;display:flex}.lnk-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));transform:translateY(-1px)}.lnk-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.lnk-card-top strong{color:var(--text);font-size:.95rem;line-height:1.35}.lnk-go{font-family:var(--mono);color:var(--accent);flex:none}.lnk-desc{color:var(--text-2);margin:0;font-size:.83rem;line-height:1.5}.lnk-domain{font-family:var(--mono);color:var(--text-3);font-size:.75rem}.lnk-admin-bar{margin-bottom:14px}.lnk-admin-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ab-mark.danger{border-color:color-mix(in srgb, #f4a28d 45%, var(--line-2));color:#f0a890}.lnk-admin-desc{color:var(--text-2);margin:6px 0 0;font-size:.84rem}
.cn{flex-direction:column;gap:18px;display:flex}.cn-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;display:grid}.cn-card{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);flex-direction:column;gap:11px;padding:16px;display:flex}.cn-card[data-phase]{border-left:3px solid var(--accent)}.cn-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cn-card-top strong{overflow-wrap:anywhere;font-size:.98rem;line-height:1.3}.cn-method{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);border:1px solid var(--line-2);white-space:nowrap;border-radius:999px;flex:none;padding:3px 10px;font-size:.75rem;font-weight:600}.cn-method.get{color:var(--p2);border-color:color-mix(in srgb, var(--p2) 40%, var(--line))}.cn-method.post{color:var(--p3);border-color:color-mix(in srgb, var(--p3) 40%, var(--line))}.cn-desc{color:var(--text-2);margin:0;font-size:.85rem;line-height:1.5}.cn-meta{flex-wrap:wrap;gap:6px;display:flex}.cn-chip{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.75rem;display:inline-flex}.cn-chip.muted{color:var(--text-3)}.cn-chip-in{color:var(--text-3);text-transform:none;font-style:normal}.cn-chip-req{color:var(--accent);text-transform:uppercase;font-size:.75rem;font-style:normal}.cn-form{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:12px;display:flex}.cn-field{flex-direction:column;gap:4px;display:flex}.cn-label{font-family:var(--mono);color:var(--text-2);align-items:baseline;gap:6px;font-size:.75rem;display:flex}.cn-req{color:var(--accent);font-style:normal}.cn-in{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border:1px solid var(--line);border-radius:999px;padding:1px 7px;font-size:.75rem;font-style:normal}.cn-hint{color:var(--text-3);font-size:.75rem;line-height:1.4}.cn-input{font:inherit;background:var(--bg);width:100%;min-height:42px;color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:8px 11px;font-size:.88rem;transition:border-color .15s}.cn-input:focus{border-color:var(--accent);outline:none}.cn-input.bad{border-color:color-mix(in srgb, var(--p4) 55%, var(--line-2))}.cn-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:4px;display:flex}.cn-act{font-family:var(--mono);color:var(--text-2);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg-1);cursor:pointer;padding:9px 16px;font-size:.78rem;transition:border-color .12s,color .12s,background .12s}.cn-act:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.cn-act.primary{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 42%, var(--line));background:color-mix(in srgb, var(--accent) 9%, var(--bg-1))}.cn-act.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 14%, var(--bg-1))}.cn-act:disabled{opacity:.5;cursor:default}.cn-missing{font-family:var(--mono);color:var(--text-3);font-size:.75rem}.cn-confirm{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line-2));border-radius:var(--r-sm);background:color-mix(in srgb, var(--accent) 6%, var(--bg));flex-direction:column;gap:10px;margin-top:auto;padding:12px 14px;display:flex}.cn-confirm p{color:var(--text-2);font-size:.85rem;line-height:1.5}.cn-confirm strong{color:var(--text)}.cn-confirm-actions{flex-wrap:wrap;gap:8px;display:flex}.cn-result{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);flex-direction:column;gap:7px;padding:11px 13px;display:flex}.cn-result.ok{border-color:color-mix(in srgb, var(--p2) 35%, var(--line-2))}.cn-result.warn{border-color:color-mix(in srgb, var(--p1) 40%, var(--line-2))}.cn-result.err{border-color:color-mix(in srgb, var(--p4) 45%, var(--line-2))}.cn-result-head{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-size:.75rem}.cn-result.ok .cn-result-head{color:var(--p2)}.cn-result.warn .cn-result-head{color:var(--p1)}.cn-result.err .cn-result-head{color:var(--p4)}.cn-result p{color:var(--text-2);font-size:.84rem;line-height:1.5}.cn-pre{font-family:var(--mono);color:var(--text);background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-sm);white-space:pre-wrap;word-break:break-word;max-height:320px;margin:0;padding:10px 12px;font-size:.78rem;line-height:1.5;overflow:auto}.cn-empty-body{color:var(--text-3);font-size:.8rem}.cn-admin{flex-direction:column;gap:14px;display:flex}.cn-admin-bar{justify-content:flex-start;display:flex}.cn-editor{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);flex-direction:column;gap:14px;padding:18px;display:flex}.cn-editor-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cn-editor-head strong{font-size:1rem}.cn-x{border-radius:var(--r-sm);border:1px solid var(--line-2);width:30px;height:30px;color:var(--text-3);background:var(--bg);font-size:.82rem;transition:color .12s,border-color .12s}.cn-x:hover{color:var(--text);border-color:var(--text-3)}.cn-editor-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.cn-fld{flex-direction:column;gap:5px;display:flex}.cn-fld.wide{grid-column:1/-1}.cn-fld>span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:.75rem}.cn-fld input,.cn-fld select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);min-height:44px;padding:9px 11px;font-size:.88rem;transition:border-color .15s}.cn-fld input:focus,.cn-fld select:focus{border-color:var(--accent);outline:none}.cn-check{flex-direction:row;align-self:end;align-items:center;gap:9px;min-height:44px}.cn-check input{width:18px;height:18px;min-height:0;accent-color:var(--accent)}.cn-check span{font-family:var(--sans);text-transform:none;letter-spacing:0;color:var(--text-2);font-size:.86rem}.cn-note{color:var(--text-3);margin:-4px 0 0;font-size:.8rem;line-height:1.5}.cn-note code{font-family:var(--mono);color:var(--text-2);background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:.78rem}.cn-warn{border:1px solid color-mix(in srgb, var(--p1) 40%, var(--line-2));border-radius:var(--r-sm);background:color-mix(in srgb, var(--p1) 7%, var(--bg));color:var(--text-2);margin:-2px 0;padding:11px 13px;font-size:.84rem;line-height:1.5}.cn-warn strong{color:var(--p1)}.cn-params{border-top:1px solid var(--line);flex-direction:column;gap:9px;padding-top:14px;display:flex}.cn-params-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.cn-add{font-family:var(--mono);color:var(--text-2);border:1px solid var(--line-2);background:var(--bg);border-radius:999px;padding:6px 13px;font-size:.75rem;transition:border-color .12s,color .12s}.cn-add:hover{border-color:var(--accent);color:var(--text)}.cn-params-empty{color:var(--text-3);font-size:.82rem}.cn-param-row{grid-template-columns:1.6fr .9fr .9fr auto auto;align-items:center;gap:8px;display:grid}.cn-param-row input[type=text],.cn-param-name,.cn-param-row select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);min-height:40px;padding:7px 10px;font-size:.84rem}.cn-param-row select:focus,.cn-param-name:focus{border-color:var(--accent);outline:none}.cn-param-req{font-family:var(--mono);color:var(--text-3);white-space:nowrap;align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.cn-param-req input{width:16px;height:16px;accent-color:var(--accent)}.cn-param-x{border-radius:var(--r-sm);border:1px solid var(--line-2);width:34px;height:34px;color:var(--text-3);background:var(--bg);font-size:.78rem;transition:color .12s,border-color .12s}.cn-param-x:hover{color:var(--p4);border-color:var(--p4)}.cn-admin-row .cn-admin-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.cn-del:hover{border-color:var(--p4);color:var(--p4)}.cn-key{font-family:var(--mono);color:var(--accent);background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:.75rem}.cn-admin-url{margin:0}.cn-url-host{font-family:var(--mono);color:var(--text-2);word-break:break-all;font-size:.78rem}.cn-admin-env{color:var(--text-3);font-size:.78rem}.cn-admin-env code{font-family:var(--mono);color:var(--text-2);background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 6px}@media (max-width:560px){.cn-grid,.cn-editor-grid{grid-template-columns:1fr}.cn-param-row{grid-template-columns:1fr 1fr}.cn-param-x{justify-self:end}.cn-act{min-height:44px}}
.ptutor{z-index:60;font-family:inherit;position:fixed;bottom:20px;right:20px}.ptutor-fab{border:1px solid var(--accent);background:var(--accent);color:#0b0c10;min-height:44px;font-family:var(--mono);cursor:pointer;border-radius:999px;padding:0 18px;font-size:.85rem;font-weight:500;transition:transform .12s;box-shadow:0 6px 22px #00000059}.ptutor-fab:hover{transform:translateY(-1px)}.ptutor-fab.is-open{background:var(--surface);color:var(--text);border-color:var(--line-2)}.ptutor-panel{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);flex-direction:column;width:min(380px,100vw - 40px);height:min(560px,100vh - 120px);display:flex;position:absolute;bottom:56px;right:0;overflow:hidden;box-shadow:0 18px 50px #00000080}.ptutor-head{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.ptutor-head strong{color:var(--text);font-size:.95rem}.ptutor-head span{color:var(--text-3);font-size:.75rem}.ptutor-msgs{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex;overflow-y:auto}.ptutor-empty{color:var(--text-2);background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:12px;font-size:.86rem;line-height:1.6}.ptutor-msg{flex-direction:column;gap:6px;max-width:100%;display:flex}.ptutor-msg.is-user{align-items:flex-end}.ptutor-bubble{white-space:pre-wrap;word-break:break-word;border-radius:12px;max-width:90%;padding:9px 12px;font-size:.88rem;line-height:1.55}.ptutor-msg.is-user .ptutor-bubble{background:var(--accent);color:#0b0c10;border-bottom-right-radius:4px}.ptutor-msg.is-assistant .ptutor-bubble{background:var(--bg);border:1px solid var(--line);color:var(--text);border-bottom-left-radius:4px}.ptutor-think{color:var(--text-3)}.ptutor-nav{font-family:var(--mono);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;padding:5px 12px;font-size:.78rem}.ptutor-nav:hover{background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.ptutor-err{color:var(--p4,#f4a28d);background:color-mix(in srgb, #f4a28d 12%, var(--surface));border-radius:var(--r);padding:8px 10px;font-size:.8rem}.ptutor-action{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line-2));background:var(--bg);border-radius:12px;flex-direction:column;align-self:stretch;gap:8px;padding:10px 12px;display:flex}.ptutor-action-head{color:var(--text);align-items:center;gap:7px;font-size:.85rem;display:flex}.ptutor-action-tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;color:#0b0c10;background:var(--accent);border-radius:999px;flex:none;padding:2px 8px;font-size:.75rem}.ptutor-action-body{font-family:var(--mono);color:var(--text-2);background:var(--surface);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:130px;margin:0;padding:8px;font-size:.75rem;line-height:1.45;overflow:auto}.ptutor-action-btns{gap:8px;display:flex}.ptutor-action-go{border:1px solid var(--accent);background:var(--accent);color:#0b0c10;cursor:pointer;border-radius:8px;flex:1;min-height:34px;font-size:.82rem;font-weight:500}.ptutor-action-no{border:1px solid var(--line-2);min-height:34px;color:var(--text-2);cursor:pointer;background:0 0;border-radius:8px;padding:0 14px;font-size:.82rem}.ptutor-action-note{color:var(--text-3);white-space:pre-wrap;word-break:break-word;font-size:.78rem}.ptutor-action-note.ok{color:var(--p2,#4fc9a1)}.ptutor-action-note.bad{color:var(--p4,#f4a28d)}.ptutor-input{border-top:1px solid var(--line);align-items:flex-end;gap:8px;padding:10px;display:flex}.ptutor-input textarea{resize:none;background:var(--bg);border:1px solid var(--line-2);color:var(--text);border-radius:10px;flex:1;padding:8px 10px;font-family:inherit;font-size:.86rem;line-height:1.4}.ptutor-input textarea:focus{border-color:var(--accent);outline:none}.ptutor-send{border:1px solid var(--accent);background:var(--accent);color:#0b0c10;cursor:pointer;border-radius:10px;min-height:38px;padding:0 14px;font-size:.82rem;font-weight:500}.ptutor-send:disabled{opacity:.5;cursor:default}@media (max-width:520px){.ptutor{bottom:12px;right:12px}}
